Bonjour,
Je voudrais tester si ma chaine contient une minuscule et la transformer en majuscule dans ce cas. En revanche, si ma chaine est en majuscule, je voudrais la passer en minuscule. J'ai donc fait le code pour tester si le caractère est un minuscule ou majuscule, selon le cas, je le transforme, pour cela j'ai parcouru la chaine avec une boucle for jusqu'à la taille de la chaine.
Le problème c'est que j'obtiens l'erreur :
error C2446: '<'*: pas de conversion de 'unsigned int (__thiscall std::basic_string<char,std::char_traits<char>,std::allocator<char>>::* )(void) throw() const' en 'unsigned int'
sur la ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
for (unsigned i = 0; i < Chaine.size; i++)
dans la fonction toupper.
Je n'arrive pas à comprendre, voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
namespace
{
	bool IsUpper(char caractere)
	{
		return (caractere >= 'A' && caractere <= 'Z');
	}// Test si le caractère est en majuscule
 
	bool IsLower(char caractere)
	{
		return (caractere >= 'a' && caractere <= 'z');
	}// Test si le caractère est en minuscule
 
 
	string ToUpper(string Chaine)
	{
		for (unsigned i = 0; i < Chaine.size; i++)
		{
			if (IsLower(Chaine[i])) Chaine[i] = toupper(Chaine[i]);
		}
		return Chaine;
	}// Transforme la chaine en majuscule (elle parcours toute la chaine et test le caractère d'indice i)
 
	string ToLower(string Chaine)
	{
		for (unsigned i = 0; i < Chaine.size; i++)
		{
			if (IsUpper(Chaine[i])) Chaine[i] = toupper(Chaine[i]);
		}
		return Chaine;
	}// Transforme la chaine en minuscule (elle parcours toute la chaine et test le caractère d'indice i)
} // Namespace
Merci de votre aide !