[C++] Convertir un string vers un nombre quelconque...

Convertir un string vers un nombre quelconque... [C++] - C++ - Programmation

Marsh Posté le 23-04-2002 à 22:50:40    

Salut,
Je suis un peu emmerdé car je cherche une fonction sur Pc qui pourrait me convertir un string vers un nombre sans que le string soit forcément un nombre.
Sur Mac, j'utilisais la fonction StringToNum,ce qui me donnait un truc dans le genre :     144775577455 = StringToNum("Michael" );.
Si vous avez des idées, elles sont les bienvenues.

Reply

Marsh Posté le 23-04-2002 à 22:50:40   

Reply

Marsh Posté le 23-04-2002 à 23:12:55    

Quand tu dis String tu parles de l'équivalent d'un char* en C ?
 
une chaîne de caractères du genre : 'M' 'i' 'c' 'h' 'a' 'e' 'l' '\0'
 
Donc dans le cas où il n'y a pas de nombre il faut retourner quoi ?
 
Sinon en C, ça donnerait :

Code :
  1. char  c[10]; /* Chaine */
  2. int   n=0;   /* Nombre */
  3. int   i=0;   /* Position */
  4. sprintf(c, "Michael" );
  5. while ( (c[i] != 0) && (c[i] < '0') && (c[i] > '9') ) i++;
  6. while ( (c[i] != 0) && (c[i] >= '0') && (c[i] <= '9') )
  7. {
  8.   n=n * (c[i] - '0');
  9.   i++;
  10. }


 
Sinon toujours en C, atoi le fait tres bien aussi.

 

[jfdsdjhfuetppo]--Message édité par DarkOli le 23-04-2002 à 23:17:38--[/jfdsdjhfuetppo]


---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html
Reply

Marsh Posté le 24-04-2002 à 00:19:59    

DarkOli a écrit a écrit :

Quand tu dis String tu parles de l'équivalent d'un char* en C ?




 
 
En fait, ce que j'aimerais faire, c'est créer un arbre binaire qui classe automatiquement mes mots par ordre alphabétique dans ses racines.
 
Je pensais donc convertir un mot en nombre et le classer dans mon arbre, mais ca me semble irréalisable de le faire comme ça.
Je cafouille un peu là sur ce coup là.
 
 
J'aimerais bien faire un truc dans ce genre là.
                  Sopha
                 I     I
                     Sophie
                    I      I
                   Sophx   Sophz
 
Sinon, comment ca se passe réellement ce genre de classement ?
Si t'as des exemples ou des docs ca serait super.

Reply

Marsh Posté le 24-04-2002 à 00:56:25    

Utilise strcmp de string.h.
Ca te compare tes 2 chaines et renvoie    
   <   0 si la chaîne s1 est avant la chaîne s2  
   =   0 si s1 et s2 ont les mêmes caractères  
   >   0 si la chaîne s1 est après la chaîne s2  
 
Le prob c'est que c'est la grosse merde pour les triller ensuite.Faut les mettre dans un tableau et trier plusieurs fois si je me souviens bien

Reply

Marsh Posté le 24-04-2002 à 09:32:54    

iS@mi a écrit a écrit :

 
En fait, ce que j'aimerais faire, c'est créer un arbre binaire qui classe automatiquement mes mots par ordre alphabétique dans ses racines.




 
peut-etre que ca peut t'aider
 
#include <string>
#include <Set>
 
typedef std::Set<std::string> StringSetT;
 
StringSetT monset;
 
Apres, tu peux chercher un element dans le set (qui est trie), regarder les suivants...

 

[jfdsdjhfuetppo]--Message édité par kenshiro182 le 24-04-2002 à 10:08:02--[/jfdsdjhfuetppo]

Reply

Sujets relatifs:

Leave a Replay

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