Come usare la funzione substr() in C++

How Use Substr Function C



Il modo per tagliare qualsiasi parte da una stringa è chiamato sottostringa. La funzione substr() esiste in C++ per generare una nuova stringa tagliando una parte particolare da una stringa. Il string.h è necessario includere il file di libreria per utilizzare 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 usare la funzione substr() in C++ è stato spiegato in questo tutorial.

Prerequisito

Prima di controllare gli esempi di questo tutorial, devi verificare che il compilatore g++ sia installato o meno nel sistema. Se stai usando Visual Studio Code, installa le estensioni necessarie per compilare il codice sorgente C++ per creare il codice eseguibile. Qui, l'applicazione Visual Studio Code è stata utilizzata per compilare ed eseguire il codice C++.







Sintassi

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



Qui, il primo argomento contiene la posizione iniziale da cui verrà avviata la sottostringa e il secondo argomento contiene la lunghezza della sottostringa. La funzione restituirà la sottostringa se vengono fornite la posizione iniziale e la lunghezza valide. I vari usi di questa funzione sono mostrati nella parte successiva di questo tutorial.



Esempio 1: uso semplice di substr()

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





//Include le librerie necessarie
#includere
#includere


intprincipale() {
//Definisce una variabile stringa
ore::cordaoriginale='Benvenuto in Linuxhint';
//Taglia la sottostringa usando substr()
ore::cordanovità=originalestr.substr (undici,9);
//Stampa la stringa originale
ore::costo <<'La stringa originale è:' <<originale<< ' ';
//Stampa la sottostringa
ore::costo <<'La sottostringa è :' <<novità<< ' ';

Restituzione 0;
}

Produzione:

Secondo il codice, la stringa originale è ' Benvenuto in LinuxHint '. 11 ha dato come posizione di partenza della sottostringa che è la posizione del carattere 'L', e 9 ha dato come valore di lunghezza della sottostringa. ' LinuxSuggerimento ' è tornato come output della funzione substr() dopo l'esecuzione del codice.



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

Il codice seguente genererà la sottostringa dopo aver cercato la posizione della particolare stringa. Creare un file C++ con il codice seguente per testare il codice. Nel codice è stato definito un valore stringa delle parole multiple. Successivamente, la posizione di una particolare stringa viene ricercata nella stringa principale utilizzando la funzione find(). La funzione substr() è stata utilizzata per generare la sottostringa partendo dall'inizio della stringa fino al valore di posizione che verrà restituito dalla funzione find().

//Include le librerie necessarie
#includere
#includere
usando spazio dei nomiore;

intprincipale()
{
ore::cordastrData= 'Mi piace la programmazione C++';

// Troviamo la posizione di '--' usando str.find()
intposizione=strData.trova('programmazione');

// Otterremo la sottostringa fino a questo modello
ore::cordanovità=strData.substr(0, posizione);

ore::costo <<strData<< ' ';
ore::costo <<novità<< ' ';

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: utilizzo di substr() con la gestione delle eccezioni

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

//Include le librerie necessarie
#includere
#includere

intprincipale() {
Tentativo{

//Definisce una variabile stringa
ore::cordaoriginale='Linuxhint';
//Taglia la sottostringa usando substr()
ore::cordanovità=originalestr.substr (undici,9);
//Stampa la sottostringa
ore::costo <<'La sottostringa è :' <<novità<< ' ';
}
catturare (costore::fuori dal limite) {
ore::certo << 'La posizione è fuori portata. ';
}
Restituzione 0;
}

Produzione:

Secondo il codice, il valore della stringa principale è, LinuxSuggerimento e il valore della posizione di partenza è 11 che non esiste. Quindi, l'eccezione è stata generata e il messaggio di errore è stato stampato dopo l'esecuzione del codice.

Esempio 4: utilizzo di 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 del delimitatore e la funzione erase() è stata utilizzata per rimuovere la stringa divisa con il delimitatore dalla stringa principale. Il ciclo 'while' è stato utilizzato per trovare tutte le posizioni del delimitatore nella stringa principale e memorizzare il valore suddiviso nell'array vettoriale. Successivamente, sono stati stampati i valori dell'array vettoriale.

//Include le librerie necessarie
#includere
#includere
#includere

intprincipale(){
//Definisci la stringa
ore::cordastringData= 'PHP:C++:Python:';
//Definisci il separatore
ore::cordaseparatore= ':';
//Dichiara la variabile vettoriale
ore::vettorele lingue{};
//Dichiara variabile intera
intposizione;
//Dichiara variabile stringa
ore::cordafuori;
/ *
Dividi la stringa usando la funzione substr()
e aggiungendo la parola divisa nel vettore
* /

mentre ((posizione=stringData.trova(separatore)) !=ore::corda::npos) {
le lingue.respingere(stringData.substr(0, posizione));
stringData.cancellare(0, posizione+separatore.lunghezza());
}
//Stampa tutte le parole divise
per (cost auto &fuori:le lingue) {
ore::costo <<fuori<<ore::fine;
}
Restituzione 0;
}

Produzione:

Secondo il codice, il valore della stringa principale è PHP:C++:Python e il valore del delimitatore è, ' : ' . Il seguente output apparirà dopo aver eseguito lo script sopra.

Conclusione

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