Converter uma string para Inteiro em C

Jinku Hu 12 outubro 2023
  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
Converter uma string para 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
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Artigo relacionado - C String

Artigo relacionado - C Integer