Bonjour
J'ai un souci avec ma fonction de conversion de chaîne de caractères en majuscule.
Je souhaite convertir tout texte saisi en texte en majuscules non accentuées pour faciliter les traitements ultérieurs (je ne souhaite pas utiliser les wchar).

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
32
33
34
35
36
37
38
39
 
 
void conv_maj(unsigned char chaine[])
{
int i;
 
  for (i=0; i<strlen(chaine); i++)
  {
  	if(chaine[i] >= 'a' && chaine[i] <= 'z')
  	{
		chaine[i] = toupper(chaine[i]);
	}
 
	else
	{
		switch (chaine[i])
		{
		   case (unsigned char) 'à': case (unsigned char) 'â': case (unsigned char) 'ä' : chaine[i] ='A' ;
		   				  break;
		   case (unsigned char) 'ç' : chaine[i] ='C' ;
		   	      break;
 
		   case (unsigned char) 'é' : case (unsigned char) 'è' : case (unsigned char) 'ê' : case (unsigned char) 'ë' : chaine[i] ='E' ;
		   					       break;
 
		   case (unsigned char) 'î' : case (unsigned char) 'ï' : chaine[i] ='I';
		   			 break;
 
		   case (unsigned char) 'ô' : case (unsigned char) 'ö' : chaine[i] = 'O' ;
		  			 break;
 
		   case (unsigned char) 'ù' : case (unsigned char) 'û' : case (unsigned char) 'ü' : chaine[i]  = 'U' ;
		   				    break;
		   default : break;
		}
	}
 
  }
}
J'obtiens des caractères bizarroïdes .