C · Intermediário · Inglês · Técnico
strtol
Função que converte texto em long, informando onde parou e sinalizando erros por errno. É a alternativa segura ao atoi, que não avisa quando a conversão falha.
Onde usar
Aparece ao ler números de argv ou da entrada do usuário. Em review troca-se atoi por strtol, conferindo se o texto inteiro foi consumido e se não houve ERANGE.
Em código
#include <stdlib.h>
#include <errno.h>
int ler(const char *s, long *n) {
char *fim;
errno = 0;
*n = strtol(s, &fim, 10);
return !errno && fim != s && !*fim;
}Exemplos
Use strtol instead of atoi so you can detect bad input.
Use strtol em vez de atoi para poder detectar entrada inválida.
Check errno and the end pointer after calling strtol.
Confira o errno e o ponteiro final depois de chamar strtol.
Cuidado
Usar atoi, que devolve 0 tanto para '0' quanto para texto inválido e tem comportamento indefinido se o valor não couber.
Sinônimos
conversão de string para long
Antônimos
atoi
Origem
Abreviação de string to long.