Comment convertir une chaîne de caractères en entier en C

  1. Fonction atoi() pour convertir une chaîne de caractères en un entier en C
  2. Fonction strtol() pour convertir une chaîne de caractères en un entier en C
  3. strtoumax() Fonction pour convertir une chaîne de caractères en un entier en C

Cet article présente différentes méthodes dans un langage de programmation C pour convertir une chaîne de caractères en un entier. Il existe plusieurs méthodes pour convertir une chaîne de caractères en un entier en C comme atoi(), strtoumax() et strol().

Fonction atoi() pour convertir une chaîne de caractères en un entier en C

La fonction atoi() convertit une chaîne de caractères en un entier dans le langage de programmation C. La fonction atoi() néglige tous les espaces blancs au début de la chaîne, convertit les caractères après les espaces blancs, puis s’arrête lorsqu’elle atteint le premier caractère non numérique.

La fonction atoi() retourne la représentation entière de la chaîne de caractères.

Nous devons inclure l’en-tête <stdlib.h> pour utiliser la fonction atoi().

Syntaxe de atoi()

int atoi(const char *str);

*str est un pointeur vers une chaîne de caractères à convertir en un entier.

atoi() Exemples de codes

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main (void) 
{
    int value;
    char str[20];
    strcpy(str,"123");
    value = atoi(str);
    printf("String value = %s, Int value = %d\n", str, value);

    return(0);
}

Production :

String value=123, Int value=123

Fonction strtol() pour convertir une chaîne de caractères en un entier en C

La fonction strtol() convertit une chaîne de caractères en un entier long dans le langage de programmation C. La fonction strtol() omet tous les caractères d’espacement au début de la chaîne, après avoir converti les caractères suivants comme faisant partie du nombre, puis s’arrête lorsqu’elle trouve le premier caractère qui n’est pas un nombre.

La fonction strtol() retourne la représentation de la valeur entière longue d’une chaîne de caractères.

Nous devons inclure l’en-tête <stdlib.h> pour utiliser la fonction atoi().

Syntaxe de strtol()

long int strtol(const char *string, char **laststr,int basenumber);
  • *string est un pointeur vers une chaîne de caractères à convertir en un long entier.
  • **laststr est un pointeur qui indique où s’arrête la conversion.
  • basenumber est la base avec l’intervalle de [2, 36].
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void)
{
    char str[10];
    char *ptr;
    long value;
    strcpy(str, " 123");
    value = strtol(str, &ptr, 10);
    printf("decimal %ld\n", value);

    return 0;
}

Production :

decimal 123

strtoumax() Fonction pour convertir une chaîne de caractères en un entier en C

La fonction strtoumax() interprète le contenu d’une chaîne comme étant sous la forme d’un nombre entier de la base spécifiée. Elle omet tout caractère d’espacement jusqu’au premier caractère non blanc. Elle prend ensuite autant de caractères que possible pour former une représentation valide du nombre entier de la base et les convertit en une valeur entière.

strtoumax() retourne la valeur entière correspondante d’une chaîne de caractères. Cette fonction retourne 0 si la conversion n’est pas effectuée avec succès.

strtoumax() Syntaxe

uintmax_t strtoumax(const char* string, char** last, int basenumber);
  • *string est un pointeur vers une chaîne de caractères à convertir en un long entier.
  • **last est un pointeur qui indique où s’arrête la conversion.
  • basenumber est la base avec l’intervalle de [2, 36].

Exemple de strtoumax()

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


int main(void)
{
    char str[10];
    char *ptr;
    int value;
    strcpy(str, " 123");
    printf("The integer value:%d",strtoumax(str, &ptr,10));   

    return 0;
}

Production :

The long integer value: 123

Article connexe - C String

  • Tableau de chaînes de caractères en C
  • Obtenez la sous-chaîne en C
  • Article connexe - C Integer

  • Utiliser la fonction strtok en C
  • Concaténer les chaînes de caractères en C