Bonjour à tous,
j'ai ecrit une fonction qui normalise un caractere diacrité en un caractere standard mais je trouve mon code pas optimisé
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
 
/* normalise_char -- fonction qui normalise les caracteres diacrités par leur equivalents non diacrités                       *                            
 * et les caracteres non diacrités par leur forme minuscule                                                                   *
 * parametres : c, caractere à normaliser                                                                                     *
 * retour : le caractere diacrité par son equivalent non diacrité en minuscule ou le caractere non diacrité en minuscule      *
 */
char normalise_char(char c)
{
	// si c'est une caractere diacrité
	if (estVoyelleDiac_fr(c) || estConsonneDiac_fr(c))
	{
		if (c == 'à' || c == 'À' || c == 'â' || c == 'Â') return 'a';
		else if (c == 'é' || c == 'è' || c == 'ê' || c == 'É' || c == 'È' || c == 'Ê' || c == 'Ë') return 'e';
		else if (c == 'î' || c == 'ï' || c == 'Î' || c == 'Ï') return 'i';
		else if (c == 'ô' || c == 'ö' || c == 'Ô' || c == 'Ö') return 'o';
		else if (c == 'ù' || c == 'û' || c == 'ü' || c == 'Ù' || c == 'Û' || c == 'Ü') return 'u';
		else if (c == 'ÿ') return 'y';
		else if (c == 'ç') return 'c';
		else return c;
	}
	// sinon, on retourne le caractère en minuscule
	else
	{
		return tolower(c);
	}
}
Je compte sur vous pour des conseils d’amélioration plutot que plein de conditions et de tests.
du genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
if (fonction(c, "éèêë")) return 'e';
Merci d'avance