Como converter uma string em um int em C ++

Como converter uma string em um int em C ++
A declaração do tipo de dados da variável é obrigatória em C ++ porque é uma linguagem fortemente digitada. Às vezes, é necessário alterar o tipo de dados de uma variável de um tipo para outro tipo para fins de programação, como string para int ou int para string. Esse tipo de conversão pode ser feito em C ++ usando diferentes tipos de funções internas. As várias maneiras de converter uma string em um int em C ++ foram mostradas neste tutorial.

Pré-requisito:

Antes de verificar os exemplos deste tutorial, você deve verificar se o compilador G ++ está instalado ou não no sistema. Se você estiver usando o código do Visual Studio, instale as extensões necessárias para compilar o código -fonte C ++ para criar o código executável. Aqui, o aplicativo de código do Visual Studio foi usado para compilar e executar o código C ++.

Usando a função Atoi ():

A função Atoi () é usada para retornar um número convertendo uma string criada por uma matriz de char em um número inteiro. O cstdlib O arquivo de cabeçalho é necessário para incluir para usar esta função.

Sintaxe:

int macoi (const char *str)

Crie um arquivo C ++ com o seguinte código para converter uma sequência de números em um número inteiro usando a função Atoi (). Aqui, o strcpy () A função foi usada para converter a string em uma matriz de char. O valor da string de entrada se converteu em uma matriz de char e o valor convertido foi usado na função Atoi () para obter o valor inteiro da string. Em seguida, o número inteiro convertido será impresso se a conversão for feita corretamente.

// inclua para imprimir a saída
#incluir
// inclua para usar a função Atoi ()
#incluir
// inclua para usar a função strcpy
#incluir
int main ()
// Declare uma variável de string
std :: string strdata;
// Declare uma variável de matriz Chracter
Char Sbarr [50];
// Pegue um número do usuário
std :: cout<// converte a string em uma matriz de charcater
StrCpy (Starr, Strdata.c_str ());
// converte a matriz de caracteres em um número inteiro
int number = std :: Atoi (Starr);
// imprima o número
std :: cout<<"The converted number is = "<<
número <<'\n';
retornar 0;

Saída:

A saída a seguir aparecerá se 6090 é tomado como entrada após a execução do código.

Usando a função stoi ():

A função Atoi () é usada para retornar um número convertendo um valor de string em um número inteiro. O primeiro argumento dessa função é obrigatório e os outros argumentos são opcionais. A sintaxe desta função é dada abaixo.

Sintaxe:

int stoi (const string & str, size_t* idx = 0, int base = 10)

Crie um arquivo C ++ com o seguinte código para converter a string em um número inteiro usando a função stoi (). Depois de executar o código, o valor de entrada retirado do usuário será convertido em um número e impresso se o valor de entrada for um número válido. Se o valor de entrada contiver algum alfabeto ou caráter não numérico, então o argumento inválido a exceção será gerada e uma mensagem de erro será impressa.

// inclua para imprimir a saída
#incluir
int main ()

// Declare uma variável de string
std :: string strdata;
// Pegue um número do usuário
std :: cout<// converte a string em número com manuseio de erros
tentar
// converte a string em número inteiro
int número = std :: stoi (strdata);
// Imprima o número convertido
std :: cout<<
"O número convertido é ="<<
número <<'\n';

// manipula o erro se o número inválido for fornecido
Catch (std :: invalid_argument const & e)
std :: cout<<"Input value is not a number.\n";

retornar 0;

Saída:

A saída a seguir aparecerá se 4577 é tomado como entrada após a execução do código.

A saída a seguir aparecerá se olá é tomado como entrada após a execução do código.

Usando fluxos de string:

Usando O ISTRINGSTREAM () Função é outra maneira de converter a string em um número inteiro usando o operador '>>'. Crie um arquivo C ++ com o seguinte código para converter dados da String em um número inteiro usando O ISTRINGSTREAM () função. Um valor de string dos números foi atribuído a uma variável string no código que foi usado como o valor do argumento do istringStream () função. Em seguida, o valor inteiro convertido foi impresso.

// inclua para imprimir a saída
#incluir
// inclua para usar a função istringStream ()
#incluir
int main ()

// Declare uma variável de string
std :: string strdata = "12345";
// declarar uma variável inteira
número int;
// converte a string no número inteiro
std :: istringStream (strdata) >> número;
// Imprima o número convertido
std :: cout<<"The converted number is = "<<
número <<'\n';
retornar 0;

Saída:

A saída a seguir aparecerá após a execução do código.

Usando a função sscanf ():

Usando o sscanf () Função é outra maneira de converter a string em um número inteiro. O cstdio O arquivo de cabeçalho é necessário para incluir o uso desta função. Crie um arquivo C ++ com o seguinte código para converter um valor de string no número inteiro usando o sscanf () função. Depois de executar o script, um valor de string será retirado do usuário. Se o valor de entrada for um valor de número válido, o valor de entrada será convertido no número inteiro e impresso; Caso contrário, uma mensagem de erro será impressa.

// inclua para imprimir a saída
#incluir
// Inclua para usar a função sscanf ()
#incluir
int main ()
// Declare uma variável de string
std :: string strdata;
// declarar uma variável inteira
número int;
// Pegue um número do usuário
std :: cout<if (sscanf (strdata.c_str (), "%d" e número) == 1)
// Imprima o número convertido
std :: cout<<"The converted number is = "<< number <<'\n';

outro
// Imprima a mensagem de erro
std :: cout<<"Input value is not a number.\n";

retornar 0;

Saída:

A saída a seguir aparecerá se 78325 é tomado como entrada após a execução do código.

Usando o loop:

O exemplo a seguir mostra como converter um valor de string em um valor inteiro sem usar nenhuma função interna. Crie um arquivo C ++ com o seguinte código para converter um valor de sequência em um número inteiro usando o 'para' laço. Um valor de string do número foi atribuído a uma variável que foi usada no 'para'Loop para converter a string em um número inteiro.

#incluir
#incluir
int main ()

// Declare uma variável de string
std :: string strdata = "6000";
// declarar uma variável inteira
número int;
// converte a string em número inteiro
para (CHAR CHR: STRDATA)
if (chr> = '0' && chr<= '9')
número = número * 10 + (chr - '0');

// Imprima o número convertido
std :: cout<<"The converted number is = "<<
número <<'\n';
retornar 0;

Saída:

A saída a seguir aparecerá se 6000 é tomado como entrada após a execução do código.

Conclusão:

Cinco maneiras diferentes de converter uma string em um número foram descritas neste tutorial usando exemplos simples para ajudar os leitores a saber a maneira de converter qualquer string em um número inteiro na programação C ++.