La conversione di un tipo di dati in un altro è necessaria per molti scopi diversi. E, se hai alcune utili funzioni integrate disponibili, è possibile convertire facilmente i dati da un tipo a un altro. Il linguaggio di programmazione C ++ offre un elenco di varie funzioni integrate che possono essere utilizzate per le conversioni del tipo di dati. Questo articolo è progettato per imparare una di quelle funzioni di conversione. Qui, illustreremo il funzionamento della funzione Stoll del linguaggio C ++.
Qual è la funzione Stoll nel linguaggio di programmazione C ++?
La funzione Stoll è una funzione integrata C ++ fornita dalla libreria standard di C ++ per convertire una stringa in una lunga int lunga. Prende la stringa di input, calcola il suo lungo valore int lungo e restituisce il valore calcolato. Imposta il puntatore sul primo carattere della stringa, ripetendo attraverso ogni carattere che aumenta di uno e raggiungendo l'ultimo personaggio.
Sintassi della funzione Stoll
La sintassi del Stoll è la seguente:
La funzione Stoll prende tre parametri: stringa, indice e base. La stringa di input da trasformare in un valore intero è contenuta nel parametro "stringa". Il parametro "indice" è un puntatore a un oggetto utilizzato per tracciare la posizione del carattere successivo. Può essere un puntatore nullo quando non è necessario. Il valore di base in cui verrà analizzata la stringa viene archiviato nel parametro finale, chiamato "base". Per impostazione predefinita, il valore di base è 10 e il valore di base 0 determina la base per il formato della stringa. Restituisce il valore intero convertito sotto forma di lunga lunga. Facciamo capire il funzionamento di Stoll con gli esempi forniti di seguito:
Esempio 1
Il primo esempio della funzione Stoll illustrerà la funzione di base della funzione Stoll. Qui viene fornito un programma semplice e facile in modo da non avere problemi a capire la funzione. Vedere il seguente codice e comprendere le righe del codice passo per passo:
#includere
Utilizzo dello spazio dei nomi std;
int main ()
lunga lunga int d, h, b;
stringa dec = "123456";
string hex = "ffffff";
string bin = "101010";
d = Stoll (dec, nullptr, 10);
H = Stoll (esadecimale, nullptr, 16);
B = Stoll (bin, nullptr, 2);
cout << dec<<" **Decimal conversion** " << d <cout < cout << bin<<" **Binary conversion** " << b < restituzione 0;
Il programma inizia con il file di intestazione, che include tutte le utility della libreria standard richieste per un programma generale C ++. Lo "Uso dello spazio dei nomi std;" consente di includere la funzione di input e output standard per eseguire una determinata attività. L'intero programma è scritto nella funzione principale.
Qui, le variabili sono dichiarate e i valori sono assegnati loro. Le stringhe che devono essere trasformate sono conservate nelle variabili "Dec", "Hex" e "Bin". Le variabili D, H e B terranno la stringa convertita sotto forma di lunga lunga.
Qui, i parametri vengono passati alla funzione Stoll. Per convertire la stringa decimale, viene fornita la base 10. Per convertire la stringa esadecimale, viene fornita la base 16 e per convertire la stringa binaria, viene fornita la base 2.
Usando l'istruzione Cout, ogni stringa e i suoi valori interi convertiti vengono stampati. La dichiarazione di reso 0 viene aggiunta alla fine del programma per garantire che l'esecuzione sia stata eseguita correttamente. È un'affermazione opzionale che può essere saltata.
Rivediamo ogni stringa convertita nell'output fornito di seguito:
Esempio 2
Proviamo la funzione Stoll con input non valido. Il compilatore lancia un errore o aumenta un'eccezione se viene fornito l'input non valido alla funzione Stoll. Se l'esecuzione non può essere eseguita, il compilatore lancerà un'eccezione di argomento non valido. Se la conversione non può essere eseguita a causa del valore di input fuori dalla range, il compilatore lancerà l'eccezione fuori portata. Facciamo capire tutto questo scenario con un semplice esempio:
#includere
Utilizzo dello spazio dei nomi std;
int main ()
String str = "ABCD!~ $#@de ";
Tentativo
cout << stoll(str) << "\n";
catch (const std :: nonlid_argument)
Cerr << "Invalid argument" << "\n";
restituzione 0;
Una stringa contenente un carattere speciale viene fornita come stringa di input per convertire usando la funzione Stoll. La funzione Stoll non può convertire i caratteri speciali dei dati di stringa generale. Aumenta un'eccezione di argomentazione non valida.
La conversione Stoll viene eseguita all'interno del blocco "Try". Se la conversione non può essere eseguita, verrà sollevata l'eccezione "argomento non valido" nel blocco "catch".
Ecco il seguente output:
In caso di una stringa di input non valida, lo Stoll non può svolgere la sua funzione e farà un'eccezione.
Esempio 3
Ora, testare la funzione Stoll con una miscela di una stringa di input valida e non valida. Qui forniremo una combinazione di stringhe valide e non valide alla funzione Stoll per vedere il funzionamento della funzione Stoll.
#includere
Utilizzo dello spazio dei nomi std;
int main ()
String STR = “123456789 0xffff 010”;
String :: size_type sz = 0;
Mentre (!str.vuoto())
long long ll = Stoll (STR, & sz, 0);
std :: cout << str.substr(0,sz) << “ converted as “ << ll << '\n';
STR = STR.substr (sz);
restituzione 0;
La stringa contiene tre elementi separati dallo spazio. Romperemo ogni elemento in una stringa separata e ne convertiremo ciascuno uno per uno. La stringa viene ripetuta e ogni elemento viene convertito in modo indipendente usando un ciclo "while". La funzione substring () divide la stringa in diversi elementi o parti. La base 0 viene fornita in modo che il compilatore determina automaticamente la base di conversione controllando il formato dei dati di input.
Il primo elemento, "123456789", è un numero decimale, quindi verrà convertito in un numero decimale usando la base 10. La conversione decimale di "123456789" dovrebbe essere "123456789". Il secondo elemento, "0xffff", è una miscela di numeri interi, stringa e esadecimale. La funzione Stoll ignora i caratteri non validi nella stringa e calcolerà la conversione della stringa valida.
Ad esempio, la "0x" nella stringa verrà ignorata e la conversione di "FFFF" verrà eseguita. La funzione Stoll determinerà automaticamente la base di conversione dal formato dei dati. Il "FFFF" è un numero intero nella serie esadecimale, quindi la funzione Stoll utilizzerà la base 16 per la conversione delle stringhe. E l'ultimo elemento, "010", è di nuovo un numero intero, quindi la funzione Stoll userà 10 per convertire la stringa decimale in un numero intero decimale. La stringa convertita "010" dovrebbe essere un numero intero "010". Vediamo l'output fornito di seguito:
Conclusione
Abbiamo avuto una rapida panoramica della funzione Stoll. Con l'aiuto di esempi, abbiamo imparato l'uso della funzione Stoll nel linguaggio di programmazione C ++. In questa guida sono forniti tre esempi unici, insieme alla loro spiegazione del codice.