Comment convertir une chaîne en un int en C ++

Comment convertir une chaîne en un int en C ++
La déclaration de type de données de la variable est obligatoire en C ++ car il s'agit d'une langue fortement dactylographiée. Parfois, il est nécessaire de modifier le type de données d'une variable d'un type à un autre type à des fins de programmation, telles que String to int ou int to string. Ce type de conversion peut être effectué en C ++ en utilisant différents types de fonctions intégrées. Les différentes façons de convertir une chaîne en un INT en C ++ ont été montrées dans ce tutoriel.

Prérequis:

Avant de vérifier les exemples de ce tutoriel, vous devez vérifier que le compilateur G ++ est installé ou non dans le système. Si vous utilisez le code Visual Studio, installez les extensions nécessaires pour compiler le code source C ++ pour créer le code exécutable. Ici, l'application de code Visual Studio a été utilisée pour compiler et exécuter le code C ++.

Utilisation de la fonction atoi ():

La fonction atoi () est utilisée pour renvoyer un nombre en convertissant une chaîne créée par un tableau char en un entier. Le cstdlib Le fichier d'en-tête doit inclure pour utiliser cette fonction.

Syntaxe:

int atoi (const char * str)

Créez un fichier C ++ avec le code suivant pour convertir une chaîne de nombres en un entier à l'aide de la fonction atoi (). Ici, le strcpy () La fonction a été utilisée pour convertir la chaîne en un tableau char. La valeur de chaîne d'entrée s'est transformée en un tableau char, et la valeur convertie a été utilisée dans la fonction atoi () pour obtenir la valeur entière de la chaîne. Ensuite, l'entier converti sera imprimé si la conversion est effectuée correctement.

// inclure pour l'impression de la sortie
#inclure
// Inclure pour l'utilisation de la fonction atoi ()
#inclure
// Inclure pour utiliser la fonction Strcpy
#inclure
int main()
// Déclarer une variable de chaîne
std :: string strdata;
// Déclarer une variable de tableau chracter
Char Strarr [50];
// prenez un numéro de l'utilisateur
std :: cout<// convertir la chaîne en un tableau charcater
Strcpy (Strarr, Strdata.c_str ());
// convertir le tableau de caractères en un entier
int number = std :: atoi (starr);
// imprime le numéro
std :: cout<<"The converted number is = "<<
nombre <<'\n';
retour 0;

Sortir:

La sortie suivante apparaîtra si 6090 est pris en entrée après avoir exécuté le code.

Utilisation de la fonction stoi ():

La fonction atoi () est utilisée pour renvoyer un nombre en convertissant une valeur de chaîne en un entier. Le premier argument de cette fonction est obligatoire, et les autres arguments sont facultatifs. La syntaxe de cette fonction est donnée ci-dessous.

Syntaxe:

int stoi (const string & str, size_t * idx = 0, int base = 10)

Créez un fichier C ++ avec le code suivant pour convertir la chaîne en un entier à l'aide de la fonction stoi (). Après l'exécution du code, la valeur d'entrée prise à l'utilisateur sera convertie en nombre et imprimé si la valeur d'entrée est un numéro valide. Si la valeur d'entrée contient un alphabet ou un caractère non numérique, alors le argument invalide une exception sera générée et un message d'erreur sera imprimé.

// inclure pour l'impression de la sortie
#inclure
int main()

// Déclarer une variable de chaîne
std :: string strdata;
// prenez un numéro de l'utilisateur
std :: cout<// convertir la chaîne en numéro avec une gestion des erreurs
essayer
// convertir la chaîne en entier
int number = std :: stoi (strdata);
// imprime le numéro converti
std :: cout<<
"Le nombre converti est ="<<
nombre <<'\n';

// gérer l'erreur si un numéro non valide est donné
Catch (std :: invalid_argument const & e)
std :: cout<<"Input value is not a number.\n";

retour 0;

Sortir:

La sortie suivante apparaîtra si 4577 est pris en entrée après avoir exécuté le code.

La sortie suivante apparaîtra si Bonjour est pris en entrée après avoir exécuté le code.

À l'aide de flux de chaîne:

En utilisant L'IstringStream () La fonction est une autre façon de convertir la chaîne en un entier en utilisant l'opérateur '>>'. Créez un fichier C ++ avec le code suivant pour convertir les données de chaîne en un entier en utilisant L'IstringStream () fonction. Une valeur de chaîne des nombres a été attribuée dans une variable de chaîne dans le code qui a été utilisé comme valeur d'argument du istringStream () fonction. Ensuite, la valeur entière convertie a été imprimée.

// inclure pour l'impression de la sortie
#inclure
// Inclure pour l'utilisation de la fonction istringStream ()
#inclure
int main()

// Déclarer une variable de chaîne
std :: string strdata = "12345";
// Déclarer une variable entière
numéro int;
// convertir la chaîne en entier
std :: istringStream (strdata) >> numéro;
// imprime le numéro converti
std :: cout<<"The converted number is = "<<
nombre <<'\n';
retour 0;

Sortir:

La sortie suivante apparaîtra après avoir exécuté le code.

Utilisation de la fonction sscanf ():

En utilisant le sscanf () La fonction est une autre façon de convertir la chaîne en un entier. Le cstdio Le fichier d'en-tête doit inclure pour utiliser cette fonction. Créez un fichier C ++ avec le code suivant pour convertir une valeur de chaîne en entier à l'aide du sscanf () fonction. Après avoir exécuté le script, une valeur de chaîne sera tirée de l'utilisateur. Si la valeur d'entrée est une valeur de nombre valide, la valeur d'entrée sera convertie en entier et imprimé; Sinon, un message d'erreur sera imprimé.

// inclure pour l'impression de la sortie
#inclure
// Inclure pour l'utilisation de la fonction sscanf ()
#inclure
int main()
// Déclarer une variable de chaîne
std :: string strdata;
// Déclarer une variable entière
numéro int;
// prenez un numéro de l'utilisateur
std :: cout<if (sscanf (strdata.c_str (), "% d", & nombre) == 1)
// imprime le numéro converti
std :: cout<<"The converted number is = "<< number <<'\n';

autre
// imprime le message d'erreur
std :: cout<<"Input value is not a number.\n";

retour 0;

Sortir:

La sortie suivante apparaîtra si 78325 est pris en entrée après avoir exécuté le code.

Utilisation pour Loop:

L'exemple suivant montre comment convertir une valeur de chaîne en valeur entière sans utiliser de fonction intégrée. Créez un fichier C ++ avec le code suivant pour convertir une valeur de chaîne en un numéro entier à l'aide du 'pour' boucle. Une valeur de chaîne du nombre a été attribuée dans une variable qui a été utilisée dans le 'pour'boucle pour convertir la chaîne en un entier.

#inclure
#inclure
int main()

// Déclarer une variable de chaîne
std :: string strdata = "6000";
// Déclarer une variable entière
numéro int;
// convertir la chaîne en entier
pour (char chr: strdata)
if (chr> = '0' && chr<= '9')
nombre = nombre * 10 + (chr - '0');

// imprime le numéro converti
std :: cout<<"The converted number is = "<<
nombre <<'\n';
retour 0;

Sortir:

La sortie suivante apparaîtra si 6000 est pris en entrée après avoir exécuté le code.

Conclusion:

Cinq façons différentes de convertir une chaîne en nombre ont été décrites dans ce tutoriel en utilisant des exemples simples pour aider les lecteurs à connaître la façon de convertir n'importe quelle chaîne en un entier dans la programmation C ++.