amélioration de ma fonction
Bonjour à tous,
j'ai ecrit une fonction qui normalise un caractere diacrité en un caractere standard mais je trouve mon code pas optimisé
Code:
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:
1 2
|
if (fonction(c, "éèêë")) return 'e'; |
Merci d'avance