Stoll C ++

Stoll C ++

La conversion d'un type de données en une autre est nécessaire à de nombreuses fins différentes. Et, si vous avez des fonctions intégrées utiles disponibles, vous pouvez facilement convertir les données d'un type à un autre. Le langage de programmation C ++ propose une liste de diverses fonctions intégrées qui peuvent être utilisées pour les conversions de type de données. Cet article est conçu pour apprendre une de ces fonctions de conversion. Ici, nous illustrons le fonctionnement de la fonction de stoll de la langue C ++.

Quelle est la fonction Stoll dans le langage de programmation C ++?

La fonction Stoll est une fonction intégrée C ++ fournie par la bibliothèque standard de C ++ pour convertir une chaîne en un long int. Il prend la chaîne d'entrée, calcule sa longue valeur int et renvoie la valeur calculée. Il définit le pointeur sur le premier caractère de la chaîne, itérant à travers chaque caractère incrémentant par un, et atteignant le dernier caractère.

Syntaxe de la fonction de stoll

La syntaxe de la stoll est la suivante:

La fonction Stoll prend trois paramètres: chaîne, index et base. La chaîne d'entrée à transformer en valeur entière est contenue dans le paramètre «String». Le paramètre «index» est un pointeur vers un objet qui est utilisé pour suivre la position du caractère suivant. Cela peut être un pointeur nul quand il n'est pas nécessaire. La valeur de base dans laquelle la chaîne sera analysée est stockée dans le paramètre final, appelé «base». Par défaut, la valeur de base est de 10 et la valeur de base 0 détermine la base par le format de la chaîne. Il renvoie la valeur entière convertie sous la forme d'un long long. Comprenons le fonctionnement de Stoll avec les exemples fournis ci-dessous:

Exemple 1

Le premier exemple de la fonction Stoll illustrera la fonction de base de la fonction Stoll. Ici, un programme simple et facile est fourni afin que vous n'ayez pas de problème à comprendre la fonction. Voir le code suivant et comprendre les lignes de code étape par étape:

#inclure
Utilisation de Namespace Std;
int main()

long long int d, h, b;
String dec = "123456";
String hex = "ffffff";
String bin = "101010";
d = stoll (dec, nullptr, 10);
h = stoll (hex, nullptr, 16);
b = stoll (bac, nullptr, 2);
couter << dec<<" **Decimal conversion** " << d <couter <couter << bin<<" **Binary conversion** " << b <retour 0;

Le programme commence par le fichier d'en-tête, qui comprend tous les services publics de bibliothèque standard requis pour un programme général C ++. «Utilisation de l'espace de noms std;; vous permet d'inclure la fonction d'entrée et de sortie standard pour effectuer une certaine tâche. L'ensemble du programme est écrit dans la fonction principale.

Ici, les variables sont déclarées et les valeurs leur sont attribuées. Les chaînes qui doivent être transformées sont stockées dans les variables «déc», «hex» et «bac». Les variables D, H et B contiendront la corde convertie sous la forme de long long int.

Ici, les paramètres sont transmis à la fonction Stoll. Pour convertir la chaîne décimale, la base 10 est fournie. Pour convertir la chaîne hexadécimale, la base 16 est fournie, et pour convertir la chaîne binaire, la base 2 est fournie.

En utilisant l'instruction COUT, chaque chaîne et ses valeurs entières converties sont imprimées. L'instruction RETOUR 0 est ajoutée à la fin du programme pour s'assurer que l'exécution a été effectuée avec succès. C'est une instruction facultative qui peut être ignorée.

Passons en revue chaque chaîne convertie dans la sortie fournie ci-dessous:

Exemple 2

Testons la fonction de stoll avec une entrée non valide. Le compilateur lance une erreur ou soulève une exception si une entrée non valide est fournie à la fonction Stoll. Si l'exécution ne peut pas être effectuée, le compilateur lancera une exception d'argument non valide. Si la conversion ne peut pas être effectuée en raison de la valeur d'entrée hors gamme, le compilateur lancera l'exception hors de portée. Comprenons tout ce scénario avec un exemple simple:

#inclure
Utilisation de Namespace Std;
int main()
String str = "ABCD!~ $ # @ de ";
essayer
couter << stoll(str) << "\n";

catch (const std :: invalid_argument)
cerr << "Invalid argument" << "\n";

retour 0;

Une chaîne contenant un caractère spécial est fournie comme une chaîne d'entrée à convertir à l'aide de la fonction stoll. La fonction Stoll ne peut pas convertir les caractères spéciaux des données générales de chaîne. Il soulève une exception d'argument non valide.

La conversion de stoll est effectuée dans le bloc «essai». Si la conversion ne peut pas être effectuée, l'exception de «l'argument non valide» dans le bloc «Catch» sera soulevée.

Voici la sortie suivante:

En cas de chaîne d'entrée non valide, le stoll ne peut pas remplir sa fonction et lancera une exception.

Exemple 3

Maintenant, testons la fonction Stoll avec un mélange d'une chaîne d'entrée valide et non valide. Ici, nous fournirons une combinaison de chaînes valides et non valides à la fonction Stoll pour voir le fonctionnement de la fonction Stoll.

#inclure
Utilisation de Namespace Std;
int main ()

String str = «123456789 0xffff 010»;
String :: size_type sz = 0;
alors que (!Str.vide())
long long ll = stoll (str, & sz, 0);
std :: cout << str.substr(0,sz) << “ converted as “ << ll << '\n';
str = str.substr (sz);

retour 0;

La chaîne contient trois éléments séparés par l'espace. Nous briserons chaque élément en une chaîne distincte et convertirons chacun d'eux un par un. La chaîne est itérée et chaque élément est converti indépendamment à l'aide d'une boucle «while». La fonction substring () divise la chaîne en différents éléments ou pièces. La base 0 est fournie afin que le compilateur détermine automatiquement la base de la conversion en vérifiant le format des données d'entrée.

Le premier élément, «123456789», est un numéro décimal, il sera donc converti en un numéro décimal en utilisant la base 10. La conversion décimale de «123456789» devrait être «123456789». Le deuxième élément, «0xffff», est un mélange de nombres entiers, cordes et hexadécimaux. La fonction Stoll ignore les caractères non valides de la chaîne et calculera la conversion de la chaîne valide.

Par exemple, le «0x» dans la chaîne sera ignoré, et la conversion de «FFFF» sera effectuée. La fonction Stoll déterminera automatiquement la base de conversion du format de données. Le «FFFF» est un entier en série hexadécimale, donc la fonction Stoll utilisera la base 16 pour la conversion de chaîne. Et le dernier élément, «010», est à nouveau un numéro entier, de sorte que la fonction Stoll utilisera 10 pour convertir la chaîne décimale en un entier décimal. La chaîne convertie «010» doit être un entier «010». Voyons la sortie fournie ci-dessous:

Conclusion

Nous avons eu un aperçu rapide de la fonction de stoll. Avec l'aide d'exemples, nous avons appris l'utilisation de la fonction Stoll dans le langage de programmation C ++. Trois exemples uniques, ainsi que leur explication du code, sont fournis dans ce guide.