Converter uma string para Inteiro em C

  1. atoi() Função para converter uma string para um número inteiro em C
  2. strtol() Função para converter uma string para um número inteiro em C
  3. strtoumax() Função para Converter String para um Inteiro em C

Este artigo introduz diferentes métodos numa linguagem de programação C para converter uma string num inteiro. Há vários métodos para converter uma string num inteiro em C como atoi(), strtoumax() e strol().

atoi() Função para converter uma string para um número inteiro em C

A função atoi() converte uma string num inteiro na linguagem de programação C. A função atoi() negligencia todos os espaços brancos no início da string, converte os caracteres após os espaços brancos, e depois pára quando atinge o primeiro caracter não numérico.

A função atoi() devolve a representação inteira da string.

Precisamos de incluir o cabeçalho <stdlib.h> para utilizar a função atoi().

atoi() Sintaxe

int atoi(const char *str);

*str é um ponteiro para um string a ser convertido num número inteiro.

atoi() Códigos de exemplo

#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);
}

Resultado:

String value=123, Int value=123

strtol() Função para converter uma string para um número inteiro em C

A função strtol() converte uma string num inteiro longo na linguagem de programação C. A função strtol() omite todos os caracteres de espaços brancos no início da string, depois de converter os caracteres subsequentes como parte do número, e depois pára quando encontra o primeiro caracter que não é um número.

A função strtol() devolve a representação do valor inteiro longo de uma string.

Precisamos de incluir o cabeçalho <stdlib.h> para utilizar a função atoi().

strtol() Sintaxe

long int strtol(const char *string, char **laststr,int basenumber);
  • *string é um ponteiro para um cordão a ser convertido num inteiro longo.
  • **laststr é um ponteiro para indicar onde pára a conversão.
  • basenumber é a base com o intervalo 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;
}

Resultado:

decimal 123

strtoumax() Função para Converter String para um Inteiro em C

A função strtoumax() interpreta o conteúdo de uma string como na forma de um número integral da base especificada. Omite qualquer carácter do espaço em branco até ao primeiro carácter não do espaço em branco. Em seguida, são necessários tantos caracteres quanto possível para formar uma representação de número inteiro de base válida e converte-os para um valor inteiro.

strtoumax() devolve o valor inteiro correspondente de uma string. Esta função retorna 0 se a conversão não for feita com sucesso.

strtoumax() Sintaxe

uintmax_t strtoumax(const char* string, char** last, int basenumber);
  • * string é um ponteiro para um cordão a ser convertido num inteiro longo.
  • ** last é um ponteiro para indicar onde pára a conversão.
  • basenumber é a base com o intervalo de [2, 36].

strtoumax() Exemplo

#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;
}

Resultado:

The long integer value: 123

Artigo relacionado - C String

  • Converter um número inteiro numa string em C
  • Concatenar Strings em C
  • Artigo relacionado - C Integer

  • Converter um número inteiro numa string em C
  • Obter Substring em C