Comment utiliser la fonction strtol en C ++

Comment utiliser la fonction strtol en C ++
En C ++, les fonctions sont utilisées pour rendre un programme plus efficace et réutilisable. Le strtol () La fonction est une telle fonction qui convertit une chaîne en une valeur entière longue. Dans cet article, nous comprendrons la syntaxe et les paramètres du strtol () fonctionne et voir quelques exemples de son utilisation en c++.

Quelle est la fonction strtol () en c++

Le strtol () La fonction est une fonction intégrée en C ++ qui convertit une chaîne en une valeur entière longue. Il accepte une chaîne sous forme de données et la transforme en valeur entière avec la base spécifiée. De plus, la méthode renvoie un lien ou un pointeur vers le caractère incorrect initial dans la chaîne.

Syntaxe de la fonction strtol ()

La syntaxe du strtol () La fonction en C ++ est la suivante:

strtol (s, & end, base)

Paramètres de la fonction strtol ()

Le strtol () La fonction a trois paramètres:

  • S: Un pointeur vers la chaîne qui doit être convertie en une valeur entière longue.
  • fin: Un pointeur vers le premier caractère invalide de la chaîne, ou sur la chaîne elle-même si aucun caractères non valide n'est trouvé.
  • base: La base du nombre qui doit être converti. La base peut être comprise entre 2 et 36, et si elle est définie sur 0, la fonction détermine la base en fonction du préfixe de la chaîne d'entrée.

Retour Type de fonction strtol ()

Le strtol () La fonction renvoie une longue valeur entière qui est convertie à partir de la chaîne d'entrée. Si aucune conversion ne se produit, elle renvoie 0.

En-tête-fichier en C ++ pour utiliser la fonction strtol () en c++

Avant d'utiliser le strtol () Fonction Dans votre code C ++, vous devez définir le #inclure En tête de fichier.

Exemples de fonction strtol () en c++

Voici quelques exemples d'utilisation strtol () fonction en c++.

Exemple 1: Programme pour convertir une chaîne en longs entiers en utilisant une base décimale

Avec strtol () fonction, il est assez simple de convertir une chaîne en un entier long en utilisant la base décimale. Le code de C ++ nécessaire dans une telle situation est illustré ci-dessous.

#inclure
#inclure
Utilisation de Namespace Std;
int main()
char str [] = "12345678";
char * endptr;
long num = strtol (str, & endptr, 10);
if (endptr == str)
couter<<"Invalid input"< autre
couter<<"The number is: "<
retour 0;

Le programme ci-dessus déclare un tableau de caractères nommé STR, qui contient la chaîne «12345678». Un pointeur nommé endptr est utilisé pour stocker l'adresse du premier caractère de la chaîne qui ne fait pas partie du numéro converti. Le strtol () La fonction est alors appelée, avec le str, & endptr de l'argument, et 10. Le premier argument est la chaîne à convertir, le deuxième argument est l'adresse du pointeur qui sera mise à jour avec la position finale de la chaîne, et le troisième argument est la base de la conversion, qui est décimal dans ce cas.

Le programme vérifie ensuite si le endptr est égal au début de la chaîne. Si c'est le cas, cela signifie que la conversion n'a pas réussi et qu'un message d'erreur est imprimé. Sinon, le programme imprime le numéro converti.

Sortir

Exemple 2: Programme pour convertir les chaînes en longs entiers avec 0 bases

Si nous définissons l'argument de base du strtol () fonction à 0, la fonction détectera automatiquement la base à partir de la chaîne d'entrée. Cela permet de convertir plus facilement les chaînes de différentes bases sans avoir à spécifier explicitement la base. Par exemple, si la chaîne commence par "0x", il est automatiquement détecté comme un numéro hexadécimal.

En utilisant le strtol () fonction Pour convertir les chaînes en longs entiers avec 0 bases, nous pouvons nous assurer que la chaîne d'entrée est valide et peut être correctement convertie en un entier long. Cela peut être utile dans de nombreux types d'implémentations, tels que la lecture des valeurs numériques de l'entrée de l'utilisateur ou l'analyse des informations à partir de documents texte.

Le programme ci-dessous est bien selon la situation précédemment indiquée.

#inclure
#inclure
Utilisation de Namespace Std;
int main()
char str [] = "0xa0b0c0";
char * endptr;
long num = strtol (str, & endptr, 0);
if (endptr == str)
couter<<"Invalid input"< autre
couter<<"The number is: "<
retour 0;

Le programme ci-dessus déclare un tableau de caractères nommé Str, qui contient la chaîne «0xa0b0c0». Le '0x' Le préfixe indique que la chaîne est au format hexadécimal. Un pointeur nommé endptr est également déclaré, qui sera utilisé pour stocker l'adresse du premier caractère de la chaîne qui ne fait pas partie du numéro converti. Le strtol () La fonction est alors appelée, avec le str, & endptr de l'argument, et 0. La base de la conversion, qui est définie sur 0, détecte automatiquement la base de la chaîne d'entrée.

Le programme vérifie ensuite si le endptr est égal au début de la chaîne. Si c'est le cas, cela signifie que la conversion n'a pas réussi et qu'un message d'erreur est imprimé. Sinon, le programme imprime le numéro converti.

Sortir

Conclusion

En c++, strtol () La fonction est utilisée pour la conversion d'une chaîne en une valeur entière longue. Suivant les directives ci-dessus, vous pourrez apprendre l'utilisation de strtol () Fonction dans C ++ car vous trouverez différents exemples qui vous aideront à comprendre les bases de cette fonction.