Comment puis-je convertir une std::string en int ?

J'ai 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 résumer, on nous transmet une équation sous forme de chaîne de caractères. Nous devons la décomposer, la formater correctement et résoudre les équations linéaires. En disant cela, je ne suis pas capable de convertir une chaîne en un nombre entier.

Je sais que la chaîne 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 ?

Je pensais par exemple à faire tourner une boucle for/while dans la chaîne, à vérifier qu'il y a un chiffre, à extraire tous les chiffres suivants et à regarder s'il y a un '-&#39 ; de tête, si c'est le cas, à multiplier le nombre entier par -1.

Cela semble un peu trop compliqué pour un si petit problème. Avez-vous des idées ?

std::istringstream ss(thestring);
ss >> thevalue;

Pour être tout à fait correct, vous devez vérifier les drapeaux d'erreur.

Commentaires (8)

utiliser la fonction atoi pour convertir la chaîne de caractères en un nombre entier :

string a = "25";

int b = atoi(a.c_str());

[http://www.cplusplus.com/reference/clibrary/cstdlib/atoi/][1]

[1] : http://www.cplusplus.com/reference/clibrary/cstdlib/atoi/

Commentaires (1)

atoi est une fonction intégrée qui convertit une chaîne de caractères en un nombre entier, en supposant que la chaîne commence par une représentation entière.

http://www.cplusplus.com/reference/clibrary/cstdlib/atoi/

Commentaires (1)