Fonction Stol() en C++

Fonction Stol En C



C++ est l'un des langages de programmation les plus populaires et les plus anciens utilisés pour le développement d'applications hautes performances. Il est utilisé par les programmeurs hautement experts et les développeurs novices. Il est principalement utilisé dans le développement de jeux et constitue une option idéale pour développer des systèmes d'exploitation. Lors de l'écriture de code dans le langage C++, vous pouvez rencontrer la conversion de données d'un type à un autre. Dans cet article, vous apprendrez à convertir une chaîne en un entier long. Il est assez difficile de convertir une chaîne dans un autre format. Cependant, le langage de programmation C++ offre un moyen rapide et efficace de convertir des chaînes en entiers.

Fonction stol en C++

Le stol est une fonction intégrée C++ fournie dans la bibliothèque std. Il convertit les chaînes en nombres entiers longs. Il convertit le contenu de la chaîne en un nombre entier de la base spécifiée et renvoie une valeur entière longue. Il prend trois paramètres, l'un est la chaîne d'entrée, le second est le paramètre objet et le troisième est la base numérique. La syntaxe de la fonction stol est donnée ci-dessous, regardez :









La fonction stol prend trois paramètres : input_string, size et base. Le 'input_string' représente la chaîne d'entrée qui doit être convertie en un nombre entier long.



Le paramètre 'taille' représente l'objet de type size_t qui porte la position de caractère suivante dans la chaîne d'entrée après la valeur numérique. Il peut s'agir d'un pointeur nul s'il n'est pas nécessaire de l'utiliser.





Le troisième paramètre, le paramètre 'base' représente la base dans laquelle la chaîne doit être interprétée. Par exemple, si la base '2' est donnée, la chaîne sera interprétée comme le nombre entier en base 2. La valeur par défaut du paramètre de base est 10 et si 0 est fourni, la valeur de base sera déterminée par le format dans la séquence. La fonction stol renvoie le nombre entier long représentant la valeur int d'une chaîne donnée.

Maintenant, explorons quelques exemples pour comprendre comment la fonction stol fonctionne en C++.



Exemple 1

Dans cet exemple, nous fournirons des chaînes décimales et hexadécimales pour vérifier comment la fonction stol les convertit en nombres entiers décimaux et hexadécimaux.

Le 'dec = 123456789' est une chaîne décimale et convertie en un entier long à l'aide de la fonction stol stol(dec,&size). Notez que la base n'est pas fournie dans la fonction en tant que paramètre d'entrée qui utilise la base 10 par défaut pour convertir la chaîne en un nombre décimal. Cependant, pour convertir la chaîne d'un nombre hexadécimal en un nombre décimal, la base 16 est fournie comme paramètre d'entrée stol(hex, nullptr, 16). Comme nous le savons, la base 16 représente un nombre hexadécimal.

#include

#include

#include

entier principale ( )

{

std :: chaîne de caractères déc = '123456789' ;
std :: chaîne de caractères hexagone = 'a2bf3c' ;
std :: chaîne de caractères :: type de taille Taille ;
long Lidéc = std :: table ( déc, & Taille ) ;
long Lihex = std :: table ( hexagone, nullptr , 16 ) ;
std :: cout << 'Saisir une chaîne décimale' << déc << ' converti en entier long ' << Lidéc << ' \n ' ;
std :: cout << 'Saisir une chaîne hexadécimale' << hexagone << ' converti en entier long ' << Lihex << ' \n ' ;
revenir 0 ;


}

Voici la sortie suivante. Notez que la chaîne décimale '123456789' a été convertie en entier long décimal '123456789'. Alors que la chaîne hexadécimale 'a2bf3c' est convertie en '10665788' nombre hexadécimal. Voici les étapes requises que vous pouvez suivre pour savoir comment la conversion est effectuée par la fonction stol :

( A2BF3C ) ₁₆ = ( dix × 16 ) + ( deux × 16 ) + ( Onze × 16 ³ ) + ( quinze × 16 ² ) + ( 3 × 16 ¹ ) + ( 12 × 16 ) = ( 10665788 ) ₁₀

Exemple # 2

Dans cet exemple, nous allons convertir un nombre binaire en utilisant la fonction stol. Voyons le code ci-dessous et comprenons le fonctionnement du code. Le '1010110110' est donné comme chaîne d'entrée et la base 2 est fournie comme paramètre de base d'entrée stol(bin,&size, 2), représentant le nombre au format binaire. La fonction stol convertira le nombre binaire en nombre décimal en suivant ces étapes :

( 1010110110 ) = ( 1 × deux ) + ( 0 × deux ) + ( 1 × deux ) + ( 0 × deux ) + ( 1 × deux ) + ( 1 × deux ) + ( 0 × deux ³ ) + ( 1 × deux ² ) + ( 1 × deux ¹ ) + ( 0 × deux ) = ( 694 ) ₁₀ #include

#include

#include

entier principale ( )

{

std :: chaîne de caractères poubelle = '1010110110' ;
std :: chaîne de caractères :: type de taille Taille ;
long libine = std :: table ( poubelle, & Taille, deux ) ;
std :: cout << 'Saisir une chaîne binaire' << poubelle << ' converti en entier long ' << libine << ' \n ' ;
revenir 0 ;


}

Comme vous pouvez le constater, la fonction stol a renvoyé le même résultat que le processus général de conversion binaire en décimal.

Exemple # 3

Dans cet exemple, nous allons voir ce qui se passe si nous testons la fonction stol avec une entrée invalide. Une chaîne de plusieurs caractères sera fournie à la fonction stol et 0 sera fourni comme valeur de base afin que la fonction détermine automatiquement la base de la chaîne. Voici le code :

Un ensemble de caractères est fourni en tant que chaîne d'entrée qui n'est déterminée par aucune valeur de base, c'est-à-dire 10, 16, 2, etc., de sorte que la fonction renverra une valeur d'erreur.

#include

#include

#include

entier principale ( )

{

std :: chaîne de caractères chr = 'abcdefgh' ;

std :: chaîne de caractères :: type de taille Taille ;
long chaîne = std :: table ( Chr, nullptr , 0 ) ;
std :: écoute << 'Saisir une chaîne de caractères' << chr << ' converti en entier long ' << chaîne << ' \n ' ;
revenir 0 ;


}

Voir la sortie ci-dessous. Notez que le compilateur a déclenché une exception 'invalid_argument' puisque la fonction ne s'occupe pas des chaînes qui ne peuvent pas être déterminées avec une valeur de base.

Exemple # 4

Dans cet exemple, nous fournirons une combinaison d'entrées valides et invalides pour voir le résultat de la fonction stol().

La chaîne d'entrée est une combinaison de caractères valides et non valides, '123xf25'. Le '0' est fourni comme base d'entrée afin que la fonction détermine automatiquement la base de la chaîne d'entrée en fonction du type de caractères.

#include

#include

#include

entier principale ( )

{

std :: chaîne de caractères chr = '123xf25' ;
std :: chaîne de caractères :: type de taille Taille ;
long chaîne = std :: table ( Chr, nullptr , 0 ) ;
std :: écoute << 'Chaîne d'entrée' << chr << ' converti en entier long ' << chaîne << ' \n ' ;
revenir 0 ;


}

Voici la sortie qui montre le fonctionnement de la fonction stol avec une combinaison d'entrées valides et non valides :

Notez que la fonction a converti le '123' en nombre décimal '123' et a rejeté le reste de la chaîne car elle a reçu une entrée invalide 'x'. La chaîne après le caractère 'x' n'est pas convertie par la fonction stol, renvoyant uniquement les premiers caractères de la chaîne sous la forme d'un entier long.

Conclusion

Dans cet article, nous avons exploré la fonction stol du langage de programmation C++. À l'aide de quelques exemples utiles et simples, nous avons appris comment la fonction stol fonctionne avec différents types d'entrées. La fonction stol prend trois paramètres, la chaîne d'entrée à convertir, un paramètre de taille qui représente la position de la fonction dans la chaîne et la valeur de base qui représente la base de la chaîne d'entrée. Il renvoie la valeur int long de la chaîne d'entrée.