ExpertiDict

C · Intermediário · Inglês · Técnico

strtol

/ˈstɹ̩.tɔl/função

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.

Veja também

Todos os termos de C