La funzione atol () in C ++ interpreta il contenuto di una stringa e restituisce il valore intero corrispondente.
atol () Prototipo
long int atol (const char * str);
È definito nel file di intestazione.
La funzione atol () accetta string come parametro, interpreta il suo contenuto come un numero intero e restituisce il valore corrispondente in long int
.
atol () Parametri
- str - Una stringa con la rappresentazione di un numero intero.
atol () Restituisce il valore
La funzione atol () restituisce:
- un
long int
valore (che viene convertito dalla stringa). - 0 se non è stato possibile eseguire una conversione valida.
Se il valore convertito non rientra nell'intervallo, provoca un comportamento indefinito.
Esempio 1: come funziona la funzione atol ()?
#include #include using namespace std; int main() ( char s() = "-114"; double number; cout << "Number in String = " << s << endl; number = atol(s); cout << "Number in Long Int = " << number; return 0; )
Quando esegui il programma, l'output sarà:
Numero in stringa = -114 Numero in int lungo = -114
Un valore intero valido per la funzione atol () è costituito da un segno + o - opzionale seguito da cifre numeriche (0-9) . La funzione atol () non supporta esadecimale, infinito ed NaN
espressioni come la funzione atof ().
In generale, un argomento intero valido per la funzione atol () ha la seguente forma:
(spazi) (- | +) (cifre)
La funzione atol () ignora tutti i caratteri di spazio vuoto iniziali finché non viene trovato il carattere principale diverso da spazi.
Quindi, a partire da questo carattere, prende il maggior numero di caratteri possibile che forma una rappresentazione intera valida e li converte in un valore int lungo. Tutto ciò che resta della stringa dopo l'ultimo carattere valido viene ignorato e non ha alcun effetto sul risultato.
Esempio 2: funzione atol () con spazi bianchi e caratteri finali
#include #include using namespace std; int main() ( cout << "Number in String = " << " 13" << endl; cout << "Number in Long Int = " << atol(" 13") << endl << endl; cout << "Number in String = " << " 25 " << endl; cout << "Number in Long Int = " << atol(" 25 ") << endl << endl; cout << "Number in String = " << "41.90abcd" << endl; cout << "Number in Long Int = " << atol("41.90abcd") << endl << endl; // Returns 0 because of invalid conversion cout << "abcd14" << " to Long Int = " << atol("abcd14") << endl; return 0; )
Quando esegui il programma, l'output sarà:
Numero in stringa = 13 Numero in lungo Int = 13 Numero in stringa = 25 Numero in lungo Int = 25 Numero in stringa = 41.90abcd Numero in lungo Int = 41 abcd14 a Long Int = 0