Come utilizzare la funzione strtol in c ++

Come utilizzare la funzione strtol in c ++
In C ++, le funzioni vengono utilizzate per rendere un programma più efficiente e riutilizzabile. IL strtol () La funzione è una di queste funzionalità che converte una stringa in un valore intero lungo. In questo articolo, capiremo la sintassi e i parametri del strtol () funzione e vedere alcuni esempi del suo utilizzo in c++.

Qual è la funzione strtol () in c++

IL strtol () La funzione è una funzione integrata in C ++ che converte una stringa in un valore intero lungo. Accetta una stringa come dati e la trasforma in un valore intero con la base specificata. Inoltre, il metodo restituisce un collegamento o un puntatore al carattere errato iniziale all'interno della stringa.

Sintassi della funzione strtol ()

La sintassi del strtol () La funzione in C ++ è la seguente:

strtol (s, e fine, base)

Parametri della funzione strtol ()

IL strtol () La funzione ha tre parametri:

  • S: Un puntatore alla stringa che deve essere convertito in un lungo valore intero.
  • FINE: Un puntatore al primo carattere non valido nella stringa o alla stringa stessa se non vengono trovati caratteri non validi.
  • base: La base del numero che deve essere convertita. La base può essere compresa tra 2 e 36 e se è impostata su 0, la funzione determina la base in base al prefisso della stringa di input.

Tipo di ritorno della funzione strtol ()

IL strtol () La funzione restituisce un lungo valore intero che viene convertito dalla stringa di input. Se non si verifica alcuna conversione, restituisce 0.

File di intestazione in c ++ per usare la funzione strtol () in c++

Prima di usare il strtol () funzione nel codice C ++, è necessario definire il #includere File di intestazione.

Esempi di funzione strtol () in c++

Di seguito sono riportati alcuni esempi di utilizzo strtol () funzione in c++.

Esempio 1: programma per convertire una stringa in numeri interi lunghi usando la base decimale

Con strtol () funzione, è piuttosto semplice convertire una stringa in un intero lungo usando la base decimale. Il codice di C ++ necessario in tale situazione è mostrato di seguito.

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()
char str [] = "12345678";
char* endptr;
Long num = strtol (STR, & endptr, 10);
if (endptr == str)
cout<<"Invalid input"< altro
cout<<"The number is: "<
restituzione 0;

Il programma sopra dichiara un array di caratteri chiamato STR, che contiene la stringa "12345678". Un puntatore chiamato endptr viene utilizzato per archiviare l'indirizzo del primo carattere nella stringa che non fa parte del numero convertito. IL strtol () la funzione viene quindi chiamata, con STR dell'argomento, e endptr e 10. Il primo argomento è la stringa da convertire, il secondo argomento è l'indirizzo del puntatore che verrà aggiornato con la posizione finale della stringa e il terzo argomento è la base per la conversione, che è decimale in questo caso.

Il programma quindi controlla se il endptr è uguale all'inizio della stringa. Se lo è, significa che la conversione non ha avuto successo e viene stampato un messaggio di errore. Altrimenti, il programma stampa il numero convertito.

Produzione

Esempio 2: programma per convertire le stringhe in numeri interi lunghi con 0 basi

Se impostiamo l'argomento base del strtol () funzione su 0, la funzione rileverà automaticamente la base dalla stringa di input. Ciò rende più facile convertire stringhe di basi diverse senza dover specificare esplicitamente la base. Ad esempio, se la stringa inizia con "0x", viene rilevato automaticamente come un numero esadecimale.

Usando il strtol () Funzione per convertire le stringhe in interi lunghi con 0 basi, possiamo garantire che la stringa di input sia valida e possa essere correttamente convertita in un numero intero lungo. Ciò può essere utile in molti tipi di implementazioni, come la lettura di valori numerici dall'input dell'utente o l'analisi delle informazioni dai documenti di testo.

Il programma indicato di seguito è ben secondo la situazione precedentemente dichiarata.

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()
char str [] = "0xa0b0c0";
char* endptr;
long num = strtol (STR, & endptr, 0);
if (endptr == str)
cout<<"Invalid input"< altro
cout<<"The number is: "<
restituzione 0;

Il programma sopra indica un array di caratteri denominato str, che contiene la stringa "0xa0b0c0". IL '0x' Il prefisso indica che la stringa è in formato esadecimale. Un puntatore chiamato endptr è anche dichiarato, che verrà utilizzato per archiviare l'indirizzo del primo carattere nella stringa che non fa parte del numero convertito. IL strtol () La funzione viene quindi chiamata, con STR dell'argomento, e endptr e 0. La base per la conversione, che è impostata su 0 rileva automaticamente la base dalla stringa di input.

Il programma quindi controlla se il endptr è uguale all'inizio della stringa. Se lo è, significa che la conversione non ha avuto successo e viene stampato un messaggio di errore. Altrimenti, il programma stampa il numero convertito.

Produzione

Conclusione

In c++, strtol () La funzione viene utilizzata per la conversione di una stringa in un valore intero lungo. Seguendo le linee guida di cui sopra, sarai in grado di imparare l'uso di strtol () Funzione in C ++ poiché troverai diversi esempi che ti aiuteranno a comprendere le basi di questa funzione.