Bonjour,
Je voulais savoir comment tranformer un string en int.
En gros l'équivalent de la commande java :MerciCode:Integer.parseInt("un entier");
Version imprimable
Bonjour,
Je voulais savoir comment tranformer un string en int.
En gros l'équivalent de la commande java :MerciCode:Integer.parseInt("un entier");
salut,
je crois qu'il faut le faire à "la main" genre tu testes si chaque caractère correspond à 1 entier, tu récupères cet entier grace à son code ASCII et tu fais la somme et la multiplication par des multiples de 10 pour calculer la valeur finale...
tu as des fonctions faites pour ça :
je crois que ça ressemble à ça :?Code:
1
2 int atoi(char * ) char * itoa(int )
Oui c'est bien ca, Merci
bonjour,
atoi (deprecated)
préférer :
version STL : http://c.developpez.com/faq/cpp/?pag...RINGS_strtonum
version C : http://c.developpez.com/faq/c/?page=...RINGS_numtostr
Et itoa() n'a jamais été standard, ni disponible sur toutes les plateformes.
les standard sont sscanf() et sprintf(), qui te permettent de lire une valeur d'un certain type et de le placer dans un autre type.
devrait t'afficher le caractère 'é' normalement, si je ne me suis pas trompé.Code:
1
2
3
4 int a = 130; char c; sscanf(a, "%c", &c); printf("%c\n", c);
o_OCitation:
Envoyé par Hypnos
Hum. Mise à part l'erreur d'appel (type des arguments, ...) elle est un peu compliqué/inefficace cette alternative à
Cette utilisation avec le %c ne correspond pas à la question de l'OP ("130" -> 130). D'autant que sscanf prend en entrée une chaine et non un nombre. Il faudrait utiliser %s, et faire attention à tous les problèmes potentiels à la noix de buffer overflow dont l'approche C++, de convertion nombre->chaine, nous protège.Code:const char c = static_cast<char>(a);
PS: toutes les consoles n'utilisent pas le même encodage => différences d'interprétation au delà de la plage ASCII (0-127). Voir les quelques sujet au sujets des accents qui ne passent pas sous les consoles type ms-dos qui tournent au CP850.