Como usar a função strtol em c ++

Como usar a função strtol em c ++
Em C ++, as funções são usadas para tornar um programa mais eficiente e reutilizável. O strtol () A função é uma dessas funções que converte uma string em um valor inteiro longo. Neste artigo, entenderemos a sintaxe e os parâmetros do strtol () função e veja alguns exemplos de seu uso em c++.

O que é strtol () função em c++

O strtol () A função é uma função interna em C ++ que converte uma string em um valor inteiro longo. Ele aceita uma string como dados e o transforma em um valor inteiro com a base especificada. Além disso, o método retorna um link ou ponteiro para o caractere incorreto inicial dentro da string.

Sintaxe da função strtol ()

A sintaxe do strtol () A função em C ++ é a seguinte:

strtol (s, & end, base)

Parâmetros da função strtol ()

O strtol () A função tem três parâmetros:

  • s: Um ponteiro para a string que deve ser convertida em um valor inteiro longo.
  • fim: Um ponteiro para o primeiro personagem inválido na corda, ou para a própria string se nenhum caractere inválido for encontrado.
  • base: A base do número que deve ser convertido. A base pode estar entre 2 e 36 e, se estiver definida como 0, a função determina a base com base no prefixo da sequência de entrada.

Retornar tipo de função strtol ()

O strtol () Função retorna um valor inteiro longo que é convertido da sequência de entrada. Se não ocorrer uma conversão, ele retornará 0.

Arquivo de cabeçalho em c ++ para usar a função strtol () em c++

Antes de usar o strtol () função no seu código C ++, você precisa definir o #incluir arquivo de cabeçalho.

Exemplos de função strtol () em c++

A seguir, alguns exemplos de uso strtol () função em c++.

Exemplo 1: Programa para converter uma string em números inteiros longos usando base decimal

Com strtol () função, é muito simples converter uma string em um número inteiro longo usando a base decimal. O código de C ++ necessário nessa situação é mostrado abaixo.

#incluir
#incluir
usando namespace std;
int main ()
char str [] = "12345678";
char* endptr;
long num = strtol (str, & endptr, 10);
if (endptr == str)
cout<<"Invalid input"< outro
cout<<"The number is: "<
retornar 0;

O programa acima declara uma matriz de caracteres chamada str, que contém a string “12345678”. Um ponteiro chamado endptr é usado para armazenar o endereço do primeiro caractere na string que não faz parte do número convertido. O strtol () A função é então chamada, com o argumento STR, & endptr e 10. O primeiro argumento é a sequência a ser convertida, o segundo argumento é o endereço do ponteiro que será atualizado com a posição final da string, e o terceiro argumento é a base para a conversão, que é decimal neste caso.

O programa então verifica se o endptr é igual ao início da corda. Se for, significa que a conversão não foi bem -sucedida e uma mensagem de erro é impressa. Caso contrário, o programa imprime o número convertido.

Saída

Exemplo 2: Programa para converter strings em números inteiros longos com 0 bases

Se definirmos o argumento base do strtol () Função para 0, a função detectará automaticamente a base da sequência de entrada. Isso facilita a conversão de seqüências de bases diferentes sem ter que especificar explicitamente a base. Por exemplo, se a string começar com "0x", É automaticamente detectado como um número hexadecimal.

Usando o strtol () Função para converter strings em números inteiros longos com 0 bases, podemos garantir que a sequência de entrada seja válida e possa ser adequadamente convertida em um número inteiro longo. Isso pode ser útil em muitos tipos de implementações, como ler valores numéricos da entrada do usuário ou analisar informações de documentos de texto.

O programa dado abaixo está bem de acordo com a situação anteriormente declarada.

#incluir
#incluir
usando namespace std;
int main ()
char str [] = "0XA0B0C0";
char* endptr;
long num = strtol (str, & endptr, 0);
if (endptr == str)
cout<<"Invalid input"< outro
cout<<"The number is: "<
retornar 0;

O programa acima declara uma matriz de personagens nomeada str, que contém a string “0XA0B0C0”. O '0x' Prefixo indica que a string está em formato hexadecimal. Um ponteiro chamado endptr também é declarado, que será usado para armazenar o endereço do primeiro caractere na string que não faz parte do número convertido. O strtol () A função é então chamada, com o argumento STR, & endptr e 0. A base para a conversão, que é definida como 0 detecta automaticamente a base da sequência de entrada.

O programa então verifica se o endptr é igual ao início da corda. Se for, significa que a conversão não foi bem -sucedida e uma mensagem de erro é impressa. Caso contrário, o programa imprime o número convertido.

Saída

Conclusão

Em c++, strtol () A função é usada para a conversão de uma string em um valor inteiro longo. Seguindo as diretrizes acima, você poderá aprender o uso de strtol () Função em C ++, pois você encontrará exemplos diferentes que o ajudarão a entender o básico desta função.