Come dividere la stringa in c ++

Come dividere la stringa in c ++
Lavorare con i dati di stringa è una parte essenziale di qualsiasi linguaggio di programmazione. A volte dobbiamo dividere i dati della stringa per scopi di programmazione. La funzione split () esiste in molti linguaggi di programmazione per dividere la stringa in più parti. Non esiste una funzione split () incorporata in C ++ per la scissione della stringa, ma esistono molti modi in più modi in C ++ per svolgere lo stesso compito, come l'uso getline () funzione, strtok () funzione, usando Trovare() E cancellare() funzioni, ecc. Gli usi di queste funzioni per dividere le stringhe in C ++ sono stati spiegati 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 ++.

Stringa divisa usando la funzione getline ()

La funzione getline () viene utilizzata per leggere i caratteri da una stringa o un contenuto di file fino a quando non viene trovato un particolare delimitatore o separatore e archiviare ogni stringa di analisi in un'altra variabile di stringa. La funzione continuerà l'attività fino a quando non viene analizzato il contenuto completo della stringa o del file. La sintassi di questa funzione è riportata di seguito.

Sintassi:

istream & getline (istream & is, string & str, char delim);

Qui, il primo parametro, Isstream, è l'oggetto da dove verranno estratti i caratteri. Il secondo parametro è una variabile stringa che memorizzerà il valore estratto. Il terzo parametro viene utilizzato per impostare il delimitatore che utilizzerà per estrarre la stringa.

Crea un file C ++ con il seguente codice per dividere una stringa in base al delimitatore dello spazio utilizzando il getline () funzione. Un valore di stringa di più parole è stato assegnato in una variabile e lo spazio è stato usato come separatore. È stata dichiarata una variabile vettoriale per archiviare le parole estratte. Successivamente, il loop "per" è stato utilizzato per stampare ogni valore dall'array vettoriale.

// Includi le librerie necessarie
#includere
#includere
#includere
#includere
int main ()

// Definisci i dati di stringa che verranno divisi
Std :: String strdata = "Impara la programmazione C ++";
// Definisci i dati del contuizione che verranno lavorati come delimita
const char separator = ";
// Definisci la variabile di array dinamica di stringhe
Std :: Vector outputArray;
// Costruisci un flusso dalla stringa
std :: stringstream Streamdata (strdata);
/*
Dichiarare la variabile stringa che verrà utilizzata
per archiviare i dati dopo la divisione
*/
Std :: String Val;
/*
Il ciclo itederà i dati divisi e
Inserire i dati nell'array
*/
while (std :: getline (StreamData, val, separatore))
outputArray.push_back (val);

// Stampa i dati divisi
std :: cout << "The original string is:" << strData << std::endl;
// Leggi l'array e stampa i dati divisi
std :: cout <<
"\ nthe valori dopo aver diviso la stringa in base allo spazio:" <<
std :: endl;
per (auto & val: outputArray)
std :: cout << val << std::endl;

restituzione 0;

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito il codice sopra.

Stringa divisa usando la funzione strtok ()

La funzione strtok () può essere utilizzata per dividere una stringa tokenizzando la parte della stringa in base a un delimitatore. Restituisce un puntatore al token successivo se esiste; Altrimenti, restituisce un valore nullo. IL corda.H Il file di intestazione è necessario per utilizzare questa funzione. Un ciclo richiederà la lettura di tutti i valori divisi dalla stringa. Il primo argomento contiene il valore della stringa che verrà analizzato e il secondo argomento contiene il delimitatore che verrà utilizzato per generare il token. La sintassi di questa funzione è riportata di seguito.

Sintassi:

char * strtok (char * str, const char * delimitatori);

Crea un file C ++ con il seguente codice per dividere una stringa utilizzando la funzione strtok (). Una matrice di caratteri è definita nel codice contenente un colon (':') come separatore. Successivamente, il strtok () La funzione viene chiamata con il valore della stringa e il delimitatore per generare il primo token. IL 'Mentre'Loop è definito per generare gli altri token e i valori token fino al NULLO il valore si trova.

// Includi le librerie necessarie
#includere
#includere
int main ()

// dichiara una serie di personaggi
Char Straray [] = "Mehrab Hossain: IT Professional: [email protected]: +8801726783423 ";
// restituisce il primo valore token in base a ':'
char *tokenValue = strtok (straray, ":");
// Inizializza la variabile contatore
int counter = 1;
/*
Itera il ciclo per stampare il valore token
e dividere i dati della stringa rimanenti per ottenere
il valore simbolico successivo
*/
mentre (tokenvalue != Null)

if (counter == 1)
printf ("Nome: %s \ n", tokenvalue);
else if (counter == 2)
printf ("occupazione: %s \ n", tokenvalue);
else if (counter == 3)
printf ("email: %s \ n", tokenvalue);
altro
printf ("mobile no. : %s \ n ", tokenvalue);
tokenValue = strtok (null, ":");
contatore ++;

restituzione 0;

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito il codice sopra.

Stringa divisa usando le funzioni di find () e cancella ()

La stringa può essere suddivisa in C ++ usando le funzioni find () e cancella (). Crea un file C ++ con il seguente codice per verificare gli usi delle funzioni di Find () e cancella () per dividere un valore di stringa in base a un particolare delimitatore. Il valore token viene generato trovando la posizione delimitante utilizzando la funzione find () e il valore del token verrà archiviato dopo aver rimosso il delimita. Questa attività verrà ripetuta fino a quando non viene analizzato il contenuto completo della stringa. Successivamente, i valori dell'array vettoriale verranno stampati.

// Includi le librerie necessarie
#includere
#includere
#includere
int main ()
// Definisci la stringa
Std :: String StringData = "Bangladesh e Giappone e Germania e Brasile";
// Definisci il separatore
std :: string separator = "e";
// dichiara la variabile vettoriale
Std :: Vector Paese;
// Dichiara variabile intera
posizione int;
// Dichiara la variabile stringa
std :: string outstr, token;
/*
Dividi la stringa usando la funzione substr ()
e aggiungendo la parola divisa nel vettore
*/
while ((position = StringData.Trova (separatore)) != std :: string :: npos)
token = stringdata.substr (0, posizione);
// Rimuovi lo spazio extra dalla parte anteriore della corda divisa
Paese.push_back (token.Cancella (0, token.find_first_not_of ("")));
stringdata.Cancella (0, posizione + separatore.lunghezza());

// stampa tutta la parola divisa tranne l'ultima
per (const auto & outstr: country)
std :: cout << outstr << std::endl;

// stampa l'ultima parola divisa
std :: cout << stringData.erase(0, stringData.find_first_not_of(" ")) << std::endl;
restituzione 0;

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito il codice sopra.

Conclusione

In questo tutorial sono stati spiegati tre diversi modi per dividere una stringa in C ++++.