fonction de hashage

fonction de hashage - C++ - Programmation

Marsh Posté le 15-11-2008 à 18:19:55    

:hello:  
 
je dois programmer une fonction de hash qui prend en entrée un prénom (chaine de caractères)
 
la formule appliqué par la fonction de hash est:
 
hash(prénom) = somme(rang de la lettre minuscule du prénom dans l'alphabet) mod 10
 
j'ai comme exemples dans l'énoncé:
hash(Christine)=5, hash(Alain)=7 et hash(Luc)=hash(Manuel)=6
 
 
 
alors pour analyser le prénom j'imagine faut que je fasse un lowercase dessus, puis une boucle avec un substr() pour prendre les lettres une par une, mais voilà je sais pas comment trouver sa position dans l'alphabet... je sais bien qu'il y a une histoire de position dans la table ASCII, mais je trouve pas... pouvez-vous m'aider? :(


Message édité par xphanoo le 15-11-2008 à 18:21:42
Reply

Marsh Posté le 15-11-2008 à 18:19:55   

Reply

Marsh Posté le 15-11-2008 à 18:28:38    

soustrait à chaque caractére la valeur 'a' pour récupérer l'index dans l'alphabet

Reply

Marsh Posté le 15-11-2008 à 18:35:53    

merci pour l'info!
mais je ne sais pas non plus comment passer d'un string (un seul caractère dedans) à une valeur entière...
 

Code :
  1. string nom = "blabla";
  2. int somme=0;
  3. for (int i=0; i < nom.length(); i++)
  4. {
  5.  somme+= nom.substr(i,1);
  6. }


 
voilà ce que j'ai testé, mais évidemment le compilateur n'arrive pas à convertir le string en entier... comment dois-je m'y prendre ?


Message édité par xphanoo le 15-11-2008 à 18:36:30
Reply

Marsh Posté le 15-11-2008 à 20:26:22    

en gros me faudrait convertir un string en char ! mais j'arrive pas à trouver ça via google, ça parle toujours de string en char* !
moi c'est un string qui contient qu'un caractère en char ! quelqu'un sait faire?  :(

Reply

Marsh Posté le 15-11-2008 à 20:30:51    

Hello,
 
   De ce côté la, j'ai envis de dire tout est dans la doc : http://www.sgi.com/tech/stl/basic_string.html
   Tu as accès aux caractères via l'opérateur []

Reply

Marsh Posté le 15-11-2008 à 20:37:32    

nom d'une pipe j'y pensais plus à ça !! merci infiniment !  :jap:  
moi qui m'emmerdais à utiliser substr puis convertir ça en char...  :o


Message édité par xphanoo le 15-11-2008 à 20:38:02
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed