Section courante

A propos

Section administrative du site

STRTOUL

Chaine à naturel long
Langage C stdlib.h

Syntaxe

unsigned long strtoul(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 non-signée «long».

Algorithme

MODULE STRTOUL(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

   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 en tant qu'entier non signé

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",strtoul(s,&sr,10));
  9.  s = "1";
  10.  printf("1 = %i\n",strtoul(s,&sr,10));
  11.  s = "123";
  12.  printf("123 = %i\n",strtoul(s,&sr,10));
  13.  s = "-123";
  14.  printf("-123 = %i\n",strtoul(s,&sr,10));
  15.  s = "G";
  16.  printf("G = %i\n",strtoul(s,&sr,10));
  17.  return 0;
  18. }

on obtiendra le résultat suivant :

0 = 0
1 = 1
123 = 123
-123 = 0
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 - strtol
Langage de programmation - C++ - Référence procédures et fonctions - strtoul

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 270.

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