Section courante

A propos

Section administrative du site

STRTOL

Chaine à entier long
Langage C stdlib.h

Syntaxe

long strtol(const char *str1,char **fin,int base);

Paramètres

Nom Description
str1 Ce paramètre permet d'indiquer la chaîne de caractères ASCIZ contenant le nombre.
fin Ce paramètre retourne un pointeur à la fin du nombre dans la chaîne de caractères ASCIZ.
base Ce paramètre permet d'indiquer la base numérique du nombre à extraire (1 à 36).

Description

Cette fonction permet de convertir la chaîne de caractères en nombre de type «long».

Algorithme

MODULE STRTOL(str, fin, base)
   Ignorer les espaces blancs au début de str

   SI str commence par "0x" ou "0X" ALORS
      Définir la base à 16 (hexadécimal)
   SINON SI str commence par "0" ALORS
      Définir la base à 8 (octale)
   SINON
      Utiliser la base fournie ou 10 par défaut (décimale)
   FIN SI

   résultat ← 0
   initialiser un signe à +1

   SI un signe + ou - est trouvé ALORS
      Mémoriser le signe
   SINON
      Considérer le signe comme positif
   FIN SI

   BOUCLE POUR CHAQUE caractère ch dans str FAIRE
      Convertir ch en sa valeur numérique (valeur de 0 à 9 ou A à F selon la base)
      SI la valeur de ch est valide pour la base donnée ALORS
         Ajouter cette valeur au résultat
      SINON
         Sortir de la boucle
      FIN SI
   FIN BOUCLE POUR CHAQUE
   SI fin est non NULL ALORS
      Assigner à fin l'adresse du caractère suivant le dernier caractère traité
   FIN SI

   RETOURNE le résultat multiplié par le signe

Remarques

Exemple

Voici quelques exemples typiques de l'utilisation de cette fonction :

Essayer maintenant !
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int main() {
  6.  char *s, *sr;
  7.  s = "0";
  8.  printf("0 = %i\n",strtol(s,&sr,10));
  9.  s = "1";
  10.  printf("1 = %i\n",strtol(s,&sr,10));
  11.  s = "123";
  12.  printf("123 = %i\n",strtol(s,&sr,10));
  13.  s = "-123";
  14.  printf("-123 = %i\n",strtol(s,&sr,10));
  15.  s = "G";
  16.  printf("G = %i\n",strtol(s,&sr,10));
  17.  return 0;
  18. }

on obtiendra le résultat suivant :

0 = 0
1 = 1
123 = 123
-123 = -123
G = 0

Voir également

Langage de programmation - C - Référence procédures et fonctions - atol
Langage de programmation - C - Référence procédures et fonctions - strtoul
Langage de programmation - C++ - Référence procédures et fonctions - strtol

Références

Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 735.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 269.

Dernière mise à jour : Mardi, le 28 juillet 2015