atoi
atoi é um termo da computação que designa uma função da linguagem C ou C++ que converte strings em números inteiros. É uma forma abreviada de escrever ASCII to integer (caracteres ASCII para número inteiro).
A função atoi recebe um vetor de de caracteres como entrada está definida no header stdlib.h
(cstdlib
em C++).
Uso
editarA função atoi
possui o seguinte protótipo:
int atoi (const char *string)
Recebendo como parâmetro um ponteiro para um vetor de char (string) e devolvendo como retorno um número inteiro. O vetor de caracteres precisa ser terminado por um caractere nulo e a sua falta faz a função ficar impossibilitada de encontrar a terminação da string, promovendo uma leitura em endereços não permitidos, o que causa uma violação de segmentação (em sistemas UNIX causa o sinal SIGSEGV) e em situações graves pode gerar uma falha de segurança.
Detecção de erros
editarPor retornar apenas os valores convertidos para inteiro não possiblita a detecção de erros.[1] É possível detectar erros de conversão utilizando a função strtol
que possui um uso mais complexo mas foi concebida para ser uma substituta bem comportada a atoi
.
Referências
- ↑ «strtol(3) - Linux man page» (em inglês). Linux Documentation. Consultado em 2 de fevereiro de 2010