HashCode avec lettres accentuées...
Bonjour,
j'ai la fonction suivante qui me permet de calculer un code en fonction d'une chaîne de caractères.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| * int HashCode(string chaine)
* {
* int ret=0; // valeur retournée
* int p=0; // parcours de la chaine en entree
* cout << chaine << " : " << (unsigned int)chaine[p] << endl; //////////////
* while(chaine[p] != '\0')
* {
* ret = ret*256 + (unsigned int) chaine[p];
* if (ret >= TAILLE_MAX_TAB)
* ret = ret%TAILLE_MAX_TAB;
* p++;
* }
* cout << ret << endl; ///////////
* return ret;
* } |
Il y a un problème lorsque la chaine passée en paramètre commence par une lettre accentuée (ret prend alors comme valeur -xxxxxxxxx) et j'aimerais résoudre ce problème sans bidouillage (si je met une condition sur les caractères à lire ca fonctionne mais ca rend la fonction de hashcode moins performante!)
Quelqu'un a une idée ? :roll: