Come utilizzare la funzione substr in C ++

Come utilizzare la funzione substr in C ++
Il modo per tagliare qualsiasi porzione da una stringa viene chiamata sotto-corda. La funzione substr () esiste in C ++ per generare una nuova stringa tagliando una parte particolare da una stringa. IL corda.H Il file della libreria è tenuto a includere questa funzione. Questa funzione ha due argomenti. Il primo argomento contiene la posizione iniziale della nuova stringa e il secondo argomento contiene la lunghezza della stringa. Il modo di utilizzare la funzione substr () in C ++ è stato spiegato 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 ++.

Sintassi

String substr (size_t pos = 0, size_t len ​​= npos) const;

Qui, il primo argomento contiene la posizione iniziale da cui verrà avviata la sotto-corda e il secondo argomento contiene la lunghezza della sotto-corda. La funzione restituirà la sotto-stringa se vengono fornite la posizione di partenza e la lunghezza valide. I vari usi di questa funzione hanno mostrato nella parte successiva di questo tutorial.

Esempio 1: semplice uso di substr ()

L'esempio seguente mostra l'uso più comune e semplice della funzione substr (). Crea un file C ++ con il seguente codice per generare una sottostringa da un valore di stringa. Una stringa di più parole è stata assegnata in una variabile stringa. Successivamente, la posizione iniziale valida e la lunghezza della sotto-corda hanno nei valori degli argomenti della funzione substr (). Sia la stringa originale che la sottostringa verranno stampate dopo aver eseguito il codice.

// Includi le librerie necessarie
#includere
#includere
int main ()
// Definisci una variabile di stringa
Std :: String OriginalStr = "Welcome to LinuxHint";
// Taglia la stringa secondaria usando il substr ()
Std :: String Newstr = Originalstr.substr (11,9);
// Stampa la stringa originale
std :: cout <<"The original string is :" << originalstr << '\n';
// stampa la stringa secondaria
std :: cout <<"The substring is :" << newstr << '\n';
restituzione 0;

Produzione:

Secondo il codice, la stringa originale è 'Benvenuti in Linuxhint'. 11 ha dato come posizione iniziale della sotto-corda che è la posizione del carattere 'L', e 9 ha dato come valore di lunghezza della sotto-corda. 'Linuxhint'è tornato come output della funzione substr () dopo aver eseguito il codice.

Esempio 2: usando substr () in base alla posizione di una stringa specifica

Il seguente codice genererà la sotto-corda dopo aver cercato la posizione della stringa particolare. Crea un file C ++ con il seguente codice per testare il codice. Un valore stringa delle parole multiple è stato definito nel codice. Successivamente, la posizione di una particolare stringa viene cercata nella stringa principale utilizzando la funzione find (). La funzione substr () è stata utilizzata per generare la sotto-stringa a partire dall'inizio della stringa al valore di posizione che verrà restituito dalla funzione find ().

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

std :: string strdata = "Mi piace la programmazione C ++";
// troviamo la posizione di "-" usando STR.Trovare()
int posizione = strdata.trovare ("programmazione");
// avremo la sottostringa fino a questo schema
Std :: String Newstr = strdata.substr (0, posizione);
std :: cout << strData << '\n';
std :: cout << newstr << '\n';
restituzione 0;

Produzione:

Secondo il codice, il valore della stringa principale è, "Mi piace la programmazione C ++"E il valore della stringa di ricerca è"programmazione' che esiste nella stringa principale. Quindi, l'output è, "Mi piace c++'Dopo aver eseguito il codice.

Esempio 3: usando substr () con la gestione delle eccezioni

La funzione substr () è stata utilizzata con la gestione delle eccezioni nel seguente codice. L'eccezione verrà generata se la posizione iniziale non valida è riportata nella funzione substr (). Crea un file C ++ con il seguente codice per testare il codice. Nel blocco di prova, è stato assegnato un valore di stringa di una parola e nella funzione substr () non è stata utilizzata una posizione iniziale non valida che aumenterà un'eccezione e stamperà il messaggio di errore.

#includere
#includere
int main ()
Tentativo
// Definisci una variabile di stringa
std :: string originalstr = "linuxhint";
// Taglia la stringa secondaria usando il substr ()
Std :: String Newstr = Originalstr.substr (11,9);
// stampa la stringa secondaria
std :: cout <<"The substring is :" << newstr << '\n';

catch (const std :: out_of_range)
Std :: Cerr << "The position is out of Range.\n";

restituzione 0;

Produzione:

Secondo il codice, il valore della stringa principale è, "Linuxhint"E il valore della posizione iniziale è 11 che non esiste. Quindi, l'eccezione è stata generata e il messaggio di errore è stato stampato dopo aver eseguito il codice.

Esempio 4: usando substr () per dividere la stringa

L'esempio seguente mostra l'uso della funzione substr () per dividere una stringa in base a un delimitatore. La funzione Find () è stata utilizzata per cercare la posizione delimitatore e la funzione Cancella () è stata utilizzata per rimuovere la stringa divisa con il delimitatore dalla stringa principale. Il ciclo "mentre" ha usato per trovare tutte le posizioni del delimitatore nella stringa principale e memorizzare il valore diviso nell'array vettoriale. Successivamente, i valori dell'array vettoriale sono stati stampati.

linuxhint@hp34: ~ $ cat a.CPP
#includere
#includere
#includere
int main ()
// Definisci la stringa
Std :: String StringData = "Php: C ++: Python:";
// Definisci il separatore
std :: string separator = ":";
// dichiara la variabile vettoriale
Std :: Vector le lingue;
// Dichiara variabile intera
posizione int;
// Dichiara la variabile stringa
std :: string outstr;
/*
Dividi la stringa usando la funzione substr ()
e aggiungendo la parola divisa nel vettore
*/
while ((position = StringData.Trova (separatore)) != std :: string :: npos)
le lingue.push_back (stringdata.substr (0, posizione));
stringdata.Cancella (0, posizione + separatore.lunghezza());

// stampa tutte le parole divise
per (const auto & outstr: lingue)
std :: cout << outstr << std::endl;

restituzione 0;

Produzione:

Secondo il codice, il valore della stringa principale è "PHP: C ++: Python"E il valore del delimitatore è": ". Verrà visualizzato il seguente output dopo aver eseguito lo script sopra.

Conclusione

Lo scopo principale dell'utilizzo della funzione substr () è quello di recuperare una sottostringa da una stringa menzionando la posizione iniziale e la lunghezza della sotto-corda. I vari usi di questa funzione sono stati spiegati in questo tutorial utilizzando più esempi per aiutare i nuovi utenti C ++ a usarlo correttamente nel loro codice.