Référence de programmation - Conversion de chaînes en entiers en langage C

En langage C, il existe deux méthodes principales pour convertir une chaîne en entier : atoi() et strtol().

1, remorque()

Syntaxe: 

int atoi(const char *str);

Le fichier d'en-tête inclus est : stdlib.h

Les espaces blancs au début de la chaîne donnée sont ignorés, à partir du caractère après l'espace jusqu'à ce que le premier caractère non numérique soit rencontré.

La valeur de retour est le résultat converti.

exemple:

#include <stdio.h>

#include <stdlib.h>

#include <chaîne.h>

int principal (vide)

{

    valeur entière ;

    char str[20] ;

    strcpy(str,"123");

    value = atoi(str);

    printf("String value = %s, Int value = %d\n", str, value);

    retour(0);

}

Sortir:

Valeur chaîne = 123, valeur entière = 123

Renvoie 0 si la conversion échoue.

2,strtol()

Syntaxe:

long int strtol(const char *string, char **laststr,int basenumber);

Le fichier d'en-tête inclus est : stdlib.h

Convertit une chaîne en un entier long. Les espaces au début de la chaîne sont ignorés. La conversion s'arrête lorsque le premier caractère non numérique est rencontré.

Le premier paramètre est la chaîne à convertir, le second est la position de la chaîne lorsque la conversion de sortie s'arrête et le troisième est la base utilisée, la plage est de 2 à 36

#include <stdio.h>

#include <stdlib.h>

#include <chaîne.h>

int principal(vide){

    char str[10] ;

    caractère *ptr ;

    valeur longue ;

    strcpy(chaîne, " 123");

    valeur = strtol(str, &ptr, 10);

    printf("décimal %ld\n", valeur);

    renvoie 0 ;

}

Sortir:

décimal 123

Renvoie 0 si la conversion échoue.

S'il est hexadécimal, utilisez les lettres A~F pour représenter 10~15.

Si 17 est interdit, utilisez les lettres A~G pour représenter 10~16.

Si c'est 16 interdit, entrez les chaînes "FFF", "0xFFF" et "0XFFF", le résultat est le même.

Et atoi est équivalent à : (int) strtol (str, (char **) NULL, 10).

3. Quelques autres méthodes

Il existe d'autres fonctions comme strtoumax, strtoimax, strtonum.

Cependant, ces fonctions peuvent avoir des problèmes de portage et tous les compilateurs C ne les prennent pas en charge.

référence:

Convertir une chaîne en entier en C | Pile de Delft

Je suppose que tu aimes

Origine blog.csdn.net/guoqx/article/details/125308911
conseillé
Classement