In questo articolo, esploreremo alcuni dei modi comuni a Dividi una stringa usando un delimitatore in c++.
Stringhe divise usando delimitatore in C++
In C ++, ci sono più approcci per interrompere una stringa usando un delimitatore, incluso:
1: Utilizzo delle funzioni find () e substr ()
Una stringa può essere divisa usando le funzioni C ++ Trovare() E substr (). La prima istanza di una sottostringa si trova utilizzando il Trovare() metodo. Se non ci sono più eventi, il pezzo rimanente della stringa verrà restituito dopo essere stato inserito nel vettore. La sottostringa che inizia all'inizio del testo e termina sul delimitatore può quindi essere estratta usando il substr () funzione. Possiamo continuare a farlo fino a quando non sono stati ottenuti tutti i sottostringi.
Ecco un esempio C ++ di come farlo Dividi una stringa usando un delimitatore:
#includereNell'esempio sopra, una stringa denominata "STR" e un delimitatore chiamato "Delimitatore" Sono definiti. Le sottostringhe da "STR" vengono quindi estratti usando un ciclo while. La posizione del delimitatore viene restituita da Trovare() metodo, o std :: string :: NPOs Se non può essere localizzato. La sottostringa dall'inizio di "STR" fino al delimitatore viene estratto usando "Substr ()" In questo punto, e viene quindi stampato sulla console. La sottostringa estratta e il delimitatore vengono quindi eliminati "STR" usando il "cancellare()" funzione. Una volta che non ci sono più delimitatori "STR", Ripetiamo questa operazione. Successivamente, produciamo l'ultima sottostringa "ciliegia" alla console.
Produzione
2: usando la funzione strtok ()
IL strtok () La funzione è un'altra funzione in C ++ che può dividere efficacemente le stringhe usando un delimitatore in qualsiasi programma C ++. Elimina due input; la stringa da diviso e il carattere delimitatore. Ecco un'implementazione di strtok () funzione in c ++:
#includereIL strtok () La funzione viene utilizzata nel codice sopra per rompere una stringa di input fornita dall'utente in token, utilizzando una virgola e uno spazio come delimitatori. Quindi pubblica ogni token sulla console su una linea separata. Ciò si ottiene memorizzando la stringa di input in un array di carbone, iterando sopra i token con un puntatore Char e quindi dividendo ripetutamente la stringa fino a quando non sono stati visualizzati tutti i token.
Produzione
3: usando la classe Stringstream
Usando il La classe è un'altra tecnica per dividere una stringa in C++. È possibile inserire e produrre dati formattati, comprese le stringhe, utilizzando questa classe. Una stringa che viene gestita come flusso può avere substrings estratti da esso usando il getline () metodo. IL getline () Il metodo estraggerà la sottostringa fino al delimitatore se lo forniamo il delimitatore come parametro.
Ecco un illustrazione di come farlo Dividi una stringa in C++ usando il stringstream () funzione.
#includereNel codice sopra, un carattere delimitatore viene utilizzato per dividere una stringa di input in token usando . Prima di estrarre ogni token dal Usando il delimitatore, il programma inizializza un oggetto con la stringa di input. Un vettore di stringhe viene quindi ampliato da ogni token. Il programma quindi attraversa il vettore, stampando ogni token alla console alla fine.
Produzione
Conclusione
Dividere una stringa usando un delimitatore è un approccio efficace in C ++ e ci sono diverse funzioni integrate in C ++ che consentono di dividere le stringhe. Queste funzioni includono find (), substr (), strtok () E stringstream classe. Gli sviluppatori dovrebbero considerare i requisiti specifici della loro applicazione e scegliere la funzione che funziona meglio per loro.