strings c with examples
Uno sguardo approfondito alle basi delle stringhe in C ++.
In questa serie C ++, fino ad ora, abbiamo discusso principalmente di array numerici in C ++. In questo tutorial, discuteremo la manipolazione con array di caratteri che chiamiamo semplicemente 'Stringhe'.
L'array di caratteri è principalmente una stringa in stile C supportata da C ++. Oltre agli array di caratteri in stile C, C ++ supporta anche una classe di stringhe 'std :: string'. Inoltre, in questo tutorial, discuteremo sia i tipi di stringhe che la differenza tra loro e sulla programmazione di ogni tipo in C ++.
=> Guarda l'elenco completo dei tutorial C ++ in questa serie.
Cosa imparerai:
Matrici di caratteri (stringhe in stile C)
La stringa in stile c è una matrice di caratteri terminata con un carattere nullo ' 0'. Quindi possiamo definire un array di tipo char e le dimensioni o la dimensione degli array e quindi possiamo inizializzarlo su una stringa o un array di caratteri.
Nota che è il compilatore che termina una stringa con un carattere nullo, quindi se inizializziamo l'array di caratteri con una stringa (tra virgolette doppie ''), dobbiamo lasciare spazio extra per il carattere null mentre dichiari la dimensione di un array .
Prendiamo alcuni esempi di dichiarazione e inizializzazione di array di caratteri.
char firstStr() = 'This is Cstyle string'; char secStr(100) = {'s','o','f','t','w','a','r','e',' ','t','e','s','t','i','n','g',' ','h','e','l','p',' '}; char thirdStr() = {'h','e','l','l','o',' '};
Tutte le definizioni precedenti sono definizioni di stringhe in stile C valide in C ++. Nota che possiamo dichiarare la dimensione effettiva o possiamo lasciare la dimensione vuota in modo che il compilatore possa adattare la dimensione a seconda della stringa che abbiamo inizializzato.
Prendiamo un Esempio di leggere e scrivere array di caratteri in C ++
Di seguito è riportato un semplice programma che legge la stringa usando cin e la emette usando cout.
#include #include using namespace std; int main() { char firstStr(100); cin>>firstStr; cout<<'you entered : '< Uscita 1:
SoftwareTestingHelp.com
hai inserito: SoftwareTestingHelp.com
Uscita 2:
Questa è una stringa in stile C.
hai inserito: questo
Se confrontiamo entrambi i risultati, vediamo che quando abbiamo inserito la prima stringa “SoftwareTestingHelp.com”, è stata stampata così com'è.
Ma nel secondo output, sebbene abbiamo inserito la stringa come 'Questa è una stringa in stile C', l'output era solo 'Questo'.
La differenza nell'output è perché, l'operatore '>>' di cin utilizzato per leggere la stringa viene trattato come la funzione 'scanf' di C, che legge solo fino a quando incontra lo spazio. Quindi 'cin con >>' è adatto per leggere matrici di caratteri senza spazio.
domande sulle funzioni di microsoft excel e sulla sintassi comune
Quindi, mentre veniva rilevato il secondo spazio di output, la funzione cin lo prendeva come la fine della stringa e leggeva solo la prima parola.
Per leggere un'intera riga di caratteri inclusi gli spazi, C ++ utilizza la funzione 'get'.
Di seguito è mostrato un programma di esempio che utilizza la funzione get:
#include #include using namespace std; int main() { char firstStr(100); cin.get(firstStr,100); cout<<'you entered : '< Produzione:
Questo è softwareTestinghelp.com
sei entrato: Questo è softwareTestinghelp.com
Come mostrato nell'esempio , la funzione get di cin utilizza due argomenti. Il primo argomento è la variabile della matrice di caratteri in cui la stringa deve essere letta mentre il secondo argomento è la dimensione massima della matrice.
Le stringhe in stile C supportano anche numerose funzioni di stringa che consentono agli utenti di manipolare le stringhe. Queste funzioni sono definite nell'intestazione 'cstring'.
Presentiamo una tabella di seguito che elenca varie funzioni di stringa che possono essere utilizzate per manipolare stringhe in stile C.
No Funzione argomenti Descrizione uno strcpy s1, s2 Copia la stringa s2 nella stringa s1 Due strcat s1, s2 Aggiunge o concatena la stringa s2 alla fine della stringa s1 3 strlen s1 Restituisce la lunghezza della stringa s1 4 strcmp s1, s2 Restituisce 0: s1 e s2 sono uguali
<0:s1 > 0: s1> s2 5 strchr s1, cap Restituisce un puntatore alla prima occorrenza del carattere ch nella stringa s1 e la stringa da lì in poi 6 strstr s1, s2 Restituisce la prima occorrenza della stringa s2 nella stringa s1
Il seguente programma mostra l'utilizzo di alcune di queste funzioni in C ++:
#include #include using namespace std; int main() { char firstStr(50) = 'This is softwareTestingHelp.com'; char secStr(50) = 'a testing platform'; int len = strlen(firstStr); cout<<'Length of firstStr : '< Produzione:
Lunghezza della prima Str: 31
Stringa risultante (secStr): softwareTesting
Confronto di firstStr e secStr: -31
SecStr concatenato: softwareTesting per te
La prima occorrenza di i in firststr in: s è softwareTestingHelp.com
Classe String in C ++
La stringa in C ++ definita dalla classe 'std :: string' è una rappresentazione del flusso di caratteri in un oggetto. In altre parole, la classe String è una raccolta di oggetti stringa. Questa classe stringa fa parte dello spazio dei nomi std ed è definita nell'intestazione 'string.h'.
Discutiamo alcune delle differenze fondamentali tra la classe di stringhe e l'array di caratteri.
- Mentre le matrici di caratteri di cui abbiamo discusso sopra sono allocate staticamente durante la fase di compilazione, le stringhe sono oggetti e quindi possono essere allocate dinamicamente.
- Poiché gli array di caratteri sono di natura statica, non possono essere ridotti o espansi una volta definiti. Quindi, se abbiamo un array di caratteri di dimensione 100 e l'ho inizializzato con la parola 'Hello', lo spazio rimanente viene sprecato.
Char mystr (100) = 'Hello';
Qui, le restanti 95 posizioni vengono sprecate.
Contrariamente a ciò, gli oggetti stringa sono di natura dinamica e occuperanno lo spazio esatto per il valore.
- Le matrici di caratteri sono più veloci in termini di prestazioni mentre le stringhe sono più lente.
- Gli array di caratteri hanno poche funzioni operanti su di essi che possono manipolarli. La classe String ha numerose funzioni incluse le funzioni iteratore.
Queste sono alcune delle differenze fondamentali tra l'array di caratteri e la classe di oggetti stringa.
Successivamente, vedremo alcuni esempi di classe stringa insieme ad alcune operazioni di base che vengono eseguite sugli oggetti della classe stringa.
Un esempio per dichiarare e inizializzare la classe stringa.
#include #include using namespace std; int main() { string str='This is string object in C++'; cout<<'
String entered is :'<Nell'esempio precedente, abbiamo dichiarato e inizializzato un oggetto stringa utilizzando la classe 'string'. Questo è un semplice esempio. Ora disponiamo di un programma per leggere la stringa dall'utente e dimostrare anche alcune funzioni di stringa tra cui trovare la lunghezza e confrontare due stringhe.
#include #include using namespace std; int main() { string str; cout<<'Input the string
'; getline(cin,str); cout<<'
String entered is :'< Produzione:
Immettere la stringa
SoftwareTestingHelp
La stringa inserita è: SoftwareTestingHelp
La lunghezza della stringa str è: 19
Due stringhe sono uguali
Nuovo str1: SoftwareTestingHelp.com
str nuova lunghezza: 0
Nell'illustrazione sopra, abbiamo utilizzato numerose funzioni di stringa per manipolare le stringhe. Dopo aver dichiarato la stringa, usiamo la funzione 'getline' della classe string per leggere la stringa dallo standard input.
Una volta letta la stringa, troviamo la sua lunghezza utilizzando la funzione 'length'. Se abbiamo bisogno di confrontare due stringhe per valutare se sono uguali o meno, possiamo utilizzare la funzione 'confronta' della classe di stringhe. Se la funzione restituisce 0, le due stringhe sono uguali, altrimenti la funzione restituisce un valore diverso da zero.
Un'altra funzione ancora è quella di aggiungere un'altra stringa alla fine della stringa esistente. Questa è la funzione 'aggiungi'. In questo esempio, aggiungiamo '.com' alla stringa già esistente str1 con il valore 'softwaretesting'.
L'ultima funzione nell'esempio è la funzione clear che viene utilizzata per cancellare il contenuto dell'oggetto stringa invocante. In questo esempio, cancelliamo il contenuto dell'oggetto str in modo che la sua lunghezza diventi 0.
Conclusione
In questo tutorial, abbiamo coperto l'array di caratteri che viene anche chiamato stringhe in stile C insieme alle basi della classe string. La classe String viene fornita con più utilità come la classe iteratore poiché è una classe contenitore.
Vedremo di più sulla classe stringa e le sue funzioni nei nostri prossimi tutorial STL !!
=> Visita qui per vedere la serie di formazione C ++ per tutti.
Lettura consigliata
- Ordinamento della shell in C ++ con esempi
- Funzioni di data e ora in C ++ con esempi
- Java String con String Buffer e String Builder Tutorial
- Ordinamento di selezione in C ++ con esempi
- Funzioni stringa Python
- Tutorial Python DateTime con esempi
- Comando Taglia in Unix con esempi
- 70+ MIGLIORI tutorial C ++ per imparare la programmazione C ++ GRATUITAMENTE