Come convertire una stringa in un INT in C ++

Come convertire una stringa in un INT in C ++
La dichiarazione del tipo di dati della variabile è obbligatoria in C ++ perché è un linguaggio fortemente tipizzato. A volte è necessario modificare il tipo di dati di una variabile da un tipo a un altro tipo a scopo di programmazione, come la stringa su int o int in stringa. Questo tipo di conversione può essere eseguito in C ++ utilizzando diversi tipi di funzioni integrate. I vari modi per convertire una stringa in un INT in C ++ sono stati mostrati in questo tutorial.

Prerequisito:

Prima di controllare gli esempi di questo tutorial, è necessario controllare il compilatore G ++ è installato o meno nel sistema. Se si utilizza il codice Visual Studio, installa le estensioni necessarie per compilare il codice sorgente C ++ per creare il codice eseguibile. Qui, l'applicazione del codice Visual Studio è stata utilizzata per compilare ed eseguire il codice C ++.

Usando la funzione atoi ():

La funzione atoi () viene utilizzata per restituire un numero convertendo una stringa creata da un array di char in un numero intero. IL cstdlib è necessario il file di intestazione per includere questa funzione.

Sintassi:

int atoi (const char *str)

Crea un file C ++ con il seguente codice per convertire una stringa di numeri in un numero intero usando la funzione Atoi (). Qui, lo strcpy () La funzione è stata utilizzata per convertire la stringa in un array char. Il valore della stringa di input è stato convertito in un array Char e il valore convertito è stato utilizzato nella funzione Atoi () per ottenere il valore intero della stringa. Successivamente, l'intero intero convertito verrà stampato se la conversione viene eseguita correttamente.

// Includi per la stampa dell'output
#includere
// include per l'utilizzo della funzione atoi ()
#includere
// include per l'utilizzo della funzione strcpy
#includere
int main ()
// Dichiara una variabile di stringa
std :: string strdata;
// dichiara una variabile di array cracter
Char Strarr [50];
// prendi un numero dall'utente
std :: cout<// converti la stringa in un array di charcater
strcpy (Strarr, strdata.c_str ());
// converti l'array di caratteri in un numero intero
int numero = std :: atoi (Strarr);
// Stampa il numero
std :: cout<<"The converted number is = "<<
numero <<'\n';
restituzione 0;

Produzione:

Verrà visualizzato il seguente output se 6090 viene preso come input dopo aver eseguito il codice.

Usando la funzione Stoi ():

La funzione atoi () viene utilizzata per restituire un numero convertendo un valore di stringa in un numero intero. Il primo argomento di questa funzione è obbligatorio e gli altri argomenti sono opzionali. La sintassi di questa funzione è riportata di seguito.

Sintassi:

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

Crea un file C ++ con il seguente codice per convertire la stringa in un numero intero usando la funzione Stoi (). Dopo aver eseguito il codice, il valore di input prelevato dall'utente verrà convertito in un numero e stampato se il valore di input è un numero valido. Se il valore di input contiene un alfabeto o un carattere non numerico, allora il Invalid_argument verrà generata un'eccezione e verrà stampato un messaggio di errore.

// Includi per la stampa dell'output
#includere
int main ()

// Dichiara una variabile di stringa
std :: string strdata;
// prendi un numero dall'utente
std :: cout<// Converti la stringa in numero con gestione degli errori
Tentativo
// converti la stringa in intero
int numero = std :: stoi (strdata);
// Stampa il numero convertito
std :: cout<<
"Il numero convertito è ="<<
numero <<'\n';

// Errore gestito se viene fornito un numero non valido
catch (std :: nonlid_argument const & e)
std :: cout<<"Input value is not a number.\n";

restituzione 0;

Produzione:

Verrà visualizzato il seguente output se 4577 viene preso come input dopo aver eseguito il codice.

Verrà visualizzato il seguente output se Ciao viene preso come input dopo aver eseguito il codice.

Utilizzo di flussi di stringa:

Usando IStringStream () La funzione è un altro modo per convertire la stringa in un numero intero usando l'operatore '>>'. Crea un file C ++ con il seguente codice per convertire i dati di stringa in un numero intero utilizzando IStringStream () funzione. Un valore di stringa dei numeri è stato assegnato in una variabile stringa nel codice che è stato utilizzato come valore dell'argomento del istringstream () funzione. Successivamente, il valore intero convertito è stato stampato.

// Includi per la stampa dell'output
#includere
// include per l'utilizzo della funzione istringstream ()
#includere
int main ()

// Dichiara una variabile di stringa
std :: string strdata = "12345";
// Dichiara una variabile interi
numero int;
// converti la stringa nel numero intero
std :: istringstream (strdata) >> numero;
// Stampa il numero convertito
std :: cout<<"The converted number is = "<<
numero <<'\n';
restituzione 0;

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito il codice.

Utilizzando la funzione sscanf ():

Usando sscanf () La funzione è un altro modo per convertire la stringa in un numero intero. IL cstdio È necessario includere il file di intestazione per l'utilizzo di questa funzione. Crea un file C ++ con il seguente codice per convertire un valore stringa nell'intero usando il sscanf () funzione. Dopo aver eseguito lo script, verrà prelevato un valore di stringa dall'utente. Se il valore di input è un valore numero valido, il valore di input verrà convertito in intero e stampato; Altrimenti, verrà stampato un messaggio di errore.

// Includi per la stampa dell'output
#includere
// include per l'utilizzo della funzione sscanf ()
#includere
int main ()
// Dichiara una variabile di stringa
std :: string strdata;
// Dichiara una variabile interi
numero int;
// prendi un numero dall'utente
std :: cout<if (sscanf (strdata.c_str (), "%d", & numero) == 1)
// Stampa il numero convertito
std :: cout<<"The converted number is = "<< number <<'\n';

altro
// Stampa il messaggio di errore
std :: cout<<"Input value is not a number.\n";

restituzione 0;

Produzione:

Verrà visualizzato il seguente output se 78325 viene preso come input dopo aver eseguito il codice.

Utilizzando per loop:

L'esempio seguente mostra come convertire un valore stringa in un valore intero senza utilizzare alcuna funzione integrata. Crea un file C ++ con il seguente codice per convertire un valore stringa in un numero intero usando il 'per' ciclo continuo. Un valore di stringa del numero è stato assegnato in una variabile che è stata utilizzata nel 'per'Loop per convertire la stringa in un numero intero.

#includere
#includere
int main ()

// Dichiara una variabile di stringa
std :: string strdata = "6000";
// Dichiara una variabile interi
numero int;
// converti la stringa in intero
per (char chr: strdata)
if (chr> = '0' && chr<= '9')
numero = numero * 10 + (Chr - '0');

// Stampa il numero convertito
std :: cout<<"The converted number is = "<<
numero <<'\n';
restituzione 0;

Produzione:

Verrà visualizzato il seguente output se 6000 viene preso come input dopo aver eseguito il codice.

Conclusione:

Cinque modi diversi per convertire una stringa in un numero sono stati descritti in questo tutorial usando semplici esempi per aiutare i lettori a conoscere il modo per convertire qualsiasi stringa in un numero intero nella programmazione C ++.