Funzione Stol() in C++

Funzione Stol In C



C++ è uno dei linguaggi di programmazione più popolari e più antichi utilizzati per lo sviluppo di applicazioni ad alte prestazioni. È utilizzato tra programmatori altamente esperti e sviluppatori alle prime armi. Viene utilizzato principalmente nello sviluppo di giochi ed è un'opzione ideale per lo sviluppo di sistemi operativi. Quando si scrive codice nel linguaggio C++, è possibile che si convertano i dati da un tipo all'altro. In questo articolo imparerai a convertire una stringa in un intero lungo. È abbastanza difficile convertire una stringa in qualsiasi altro formato. Tuttavia, il linguaggio di programmazione C++ fornisce un modo rapido ed efficiente per convertire le stringhe in numeri interi.

stol Funzione in C++

Stol è una funzione incorporata in C++ fornita nella libreria std. Converte le stringhe in numeri interi lunghi. Converte il contenuto della stringa in un numero intero della base specificata e restituisce un valore intero lungo. Richiede tre parametri, uno è la stringa di input, il secondo è il parametro oggetto e il terzo è la base numerica. La sintassi della funzione stol è riportata di seguito, dai un'occhiata:









La funzione stol accetta tre parametri: input_string, size e base. La 'stringa_input' rappresenta la stringa di input che deve essere convertita in un numero intero lungo.



Il parametro “size” rappresenta l'oggetto di tipo size_t che porta la posizione del carattere successivo nella stringa di input dopo il valore numerico. Può essere un puntatore nullo se non è necessario utilizzarlo.





Il terzo parametro, il parametro “base” rappresenta la base in cui la stringa deve essere interpretata. Ad esempio, se viene fornita la base '2', la stringa verrà interpretata come numero intero in base 2. Il valore predefinito del parametro di base è 10 e se viene fornito 0, il valore di base sarà determinato dal formato nella sequenza. La funzione stol restituisce il numero intero lungo che rappresenta il valore int di una determinata stringa.

Ora, esploriamo alcuni esempi per capire come funziona la funzione stol in C++.



Esempio 1

In questo esempio, forniremo stringhe decimali ed esadecimali per verificare come la funzione stol le converte in numeri interi decimali ed esadecimali.

Il 'dec = 123456789' è una stringa decimale e convertita in un intero lungo utilizzando la funzione stol stol(dec,&size). Si noti che la base non è fornita nella funzione come parametro di input che come risultato utilizza la base predefinita 10 per convertire la stringa in un numero decimale. Tuttavia, per convertire la stringa da un numero esadecimale a un numero decimale, viene fornita la base 16 come parametro di input stol(hex, nullptr, 16). Come sappiamo, la base 16 rappresenta un numero esadecimale.

#includi

#includi

#include

int principale ( )

{

std :: corda dic = '123456789' ;
std :: corda esadecimale = 'a2bf3c' ;
std :: corda :: tipo_dimensione taglia ;
lungo lide = std :: tavolo ( dic, & taglia ) ;
lungo lihex = std :: tavolo ( esadecimale, nullptr , 16 ) ;
std :: cout << 'Inserisci stringa decimale' << dic << ' convertito in long int ' << lide << ' \n ' ;
std :: cout << 'Inserisci stringa esadecimale' << esadecimale << ' convertito in long int ' << lihex << ' \n ' ;
Restituzione 0 ;


}

Ecco il seguente output. Si noti che la stringa decimale '123456789' è stata convertita in '123456789' intero decimale lungo. Mentre la stringa esadecimale “a2bf3c” è stata convertita in un numero esadecimale “10665788”. Ecco i passaggi richiesti che puoi seguire per sapere come viene eseguita la conversione dalla funzione stol:

( A2BF3C ) ₁₆ = ( 10 × 16 ) + ( Due × 16 ) + ( undici × 16 ³ ) + ( quindici × 16 ² ) + ( 3 × 16 ¹ ) + ( 12 × 16 ) = ( 10665788 ) ₁₀

Esempio n. 2

In questo esempio, convertiremo un numero binario usando la funzione stol. Vediamo il codice qui sotto e capiamo il funzionamento del codice. Il '1010110110' viene fornito come stringa di input e la base 2 viene fornita come parametro di base di input stol(bin,&size, 2), che rappresenta il numero in formato binario. La funzione stol converte il numero binario in un numero decimale seguendo questi passaggi:

( 1010110110 ) = ( 1 × Due ) + ( 0 × Due ) + ( 1 × Due ) + ( 0 × Due ) + ( 1 × Due ) + ( 1 × Due ) + ( 0 × Due ³ ) + ( 1 × Due ² ) + ( 1 × Due ¹ ) + ( 0 × Due ) = ( 694 ) ₁₀ #includi

#includi

#include

int principale ( )

{

std :: corda bidone = '1010110110' ;
std :: corda :: tipo_dimensione taglia ;
lungo libin = std :: tavolo ( bidone, & taglia, Due ) ;
std :: cout << 'Inserisci stringa binaria' << bidone << ' convertito in long int ' << libin << ' \n ' ;
Restituzione 0 ;


}

Come puoi vedere, la funzione stol ha restituito lo stesso risultato del processo di conversione da binario a decimale generale.

Esempio n. 3

In questo esempio, vedremo cosa succede se testiamo la funzione stol con input non validi. Una stringa di più caratteri verrà fornita alla funzione stol e 0 verrà fornito come valore di base in modo che la funzione determini automaticamente la base della stringa. Ecco il codice:

Viene fornito un set di caratteri come stringa di input che non è determinata da alcun valore di base, ad esempio 10, 16, 2, ecc., quindi la funzione restituirà un valore di errore.

#includi

#includi

#include

int principale ( )

{

std :: corda chr = 'abcdefgh' ;

std :: corda :: tipo_dimensione taglia ;
lungo str = std :: tavolo ( chr, nullptr , 0 ) ;
std :: cout << 'Inserisci stringa di caratteri' << chr << ' convertito in long int ' << str << ' \n ' ;
Restituzione 0 ;


}

Vedere l'output di seguito. Si noti che il compilatore ha sollevato un'eccezione 'invalid_argument' poiché la funzione non soddisfa le stringhe che non possono essere determinate con alcun valore di base.

Esempio n. 4

In questo esempio, forniremo una combinazione di input valido e non valido per vedere il risultato della funzione stol().

La stringa di input è una combinazione di caratteri validi e non validi, '123xf25'. Lo '0' è fornito come base di input in modo che la funzione determini automaticamente la base della stringa di input in base al tipo di caratteri.

#includi

#includi

#include

int principale ( )

{

std :: corda chr = '123xf25' ;
std :: corda :: tipo_dimensione taglia ;
lungo str = std :: tavolo ( chr, nullptr , 0 ) ;
std :: cout << 'Stringa di input' << chr << ' convertito in long int ' << str << ' \n ' ;
Restituzione 0 ;


}

Ecco l'output che mostra il funzionamento della funzione stol con una combinazione di input valido e non valido:

Si noti che la funzione ha convertito '123' nel numero decimale '123' e ha scartato il resto della stringa poiché ha ricevuto un input 'x' non valido. La stringa dopo il carattere 'x' non viene convertita dalla funzione stol, restituendo solo i primi caratteri della stringa purché int.

Conclusione

In questo post, abbiamo esplorato la funzione stol del linguaggio di programmazione C++. Con l'aiuto di alcuni esempi utili e semplici, abbiamo appreso come funziona la funzione stol con diversi tipi di input. La funzione stol accetta tre parametri, la stringa di input che deve essere convertita, un parametro size che rappresenta la posizione della funzione nella stringa e il valore di base che rappresenta la base della stringa di input. Restituisce il valore long int della stringa di input.