J'ai juste une petite question. J'ai fait un peu de recherche sur Internet et j'ai trouvé quelques solutions, mais aucune n'a encore fonctionné. Je cherche à convertir une chaîne de caractères en un nombre entier et je ne parle pas des codes ASCII.
Pour une rapide mise au point, on nous transmet une équation sous forme de chaîne. Nous devons la décomposer, la formater correctement et résoudre les équations linéaires. Maintenant, en disant cela, je ne suis pas capable de convertir une chaîne en un int.
Je sais que la chaîne de caractères sera au format (-5) ou (25), etc. et qu'il s'agit donc bien d'un nombre entier. Mais comment extraire cela d'une chaîne de caractères ?
J'ai pensé à faire tourner une boucle for/while dans la chaîne de caractères, à vérifier qu'il y a un chiffre, à extraire tous les chiffres suivants et à regarder s'il y a un '-' en tête, et s'il y en a un, à multiplier l'entier par -1.
Cela semble un peu trop compliqué pour un si petit problème. Vous avez des idées ?
10 votes
Avez-vous essayé
atoi()
?3 votes
cplusplus.com/reference/clibrary/cstdlib/atoi
2 votes
stackoverflow.com/search?q=convert+string+int++c%2B%2B
0 votes
Pouvez-vous afficher un exemple ?
1 votes
Jetez un coup d'œil à boost::lexical_cast : boost.org/doc/libs/1_47_0/libs/conversion/lexical_cast.htm
7 votes
@Chad Donc vous lui recommandez d'utiliser une bibliothèque entière pour quelque chose que le langage peut faire avec les bibliothèques standard de toute façon ?
1 votes
Bizarrement, il dit que "Aucune fonction correspondante pour l'appel à 'atoi' ? Je suppose qu'elle prend un char et non une std::string ?
7 votes
@Brandon, si vous avez un
std::string
myString
et que vous voulez utiliseratoi
alors vous voulez direatoi(myString.c_str())
.0 votes
Et les gens se demandent pourquoi quand on leur dit que le c++ est trop lent ;)
0 votes
@WinstonEwert - vise principalement la ou les suggestions boost:lexical_cast - notez le clin d'œil ;)
0 votes
@KevinDTimm, le lexical cast est-il inefficace ?
0 votes
@WinstonEwert - voir le commentaire de JamWaffles