Converter uma string para Inteiro em C
-
atoi()
Função para converter uma string para um número inteiro em C -
strtol()
Função para converter uma string para um número inteiro em C -
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
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 FacebookArtigo relacionado - C String
- Apare uma corda em C
- Array de Strings em C
- Converter string em minúsculas em C
- String concatenada e Int em C
- String truncada em C
- Use a função strdup em C