Cos'è una stringa?
Una stringa è una sequenza di caratteri. Una stringa C ++ è un oggetto della classe std :: string. I caratteri sono sequenze di byte memorizzate con accesso a un singolo byte di carattere consentito.
Le stringhe C ++ allocano la memoria in modo dinamico. Se necessario, è possibile allocare più memoria alla stringa durante il runtime. Poiché non vi è alcuna pre-allocazione della memoria, nessuno spreco di memoria. Possiamo eseguire varie operazioni sulle stringhe, inclusi confronti, concatenazioni, conversioni, ecc.
In questo tutorial C ++ imparerai:
- Cos'è una stringa?
- Dichiarazione di stringhe
- Stringa di caratteri in stile C.
- std :: string
- Accesso ai valori stringa
- Funzioni stringa:
- strcpy ()
- strcat ()
- strlen ()
- strcmp ()
- Esempio:
Dichiarazione di stringhe
C ++ supporta due tipi di dichiarazioni di stringhe:
- Stringa di caratteri in stile C.
- Tipo di classe String
Stringa di caratteri in stile C.
Questo tipo di dichiarazione di stringa è stato introdotto nel linguaggio di programmazione C. C ++ continua a supportarlo. È semplicemente un array unidimensionale di caratteri terminato con un carattere nullo (\ 0). Una stringa con terminazione null ha caratteri che compongono la stringa seguiti da un null.
Considera la dichiarazione di stringa fornita di seguito:
char name[5] = {'J', 'o', 'h', 'n', '\0'};
La dichiarazione precedente crea una stringa che forma la parola John. La parola ha 4 caratteri, ma la stringa ha una dimensione di 5. Lo spazio extra consente di contenere il carattere nullo.
Usando la regola di inizializzazione dell'array, possiamo scrivere l'istruzione sopra come segue:
char name[] = "John";
Nota che non devi inserire il carattere null alla fine della costante di stringa. Il compilatore C ++ posizionerà automaticamente "\ 0" alla fine della stringa durante l'inizializzazione dell'array.
std :: string
La libreria C ++ standard fornisce la classe string che supporta varie operazioni sulle stringhe. È scritto come std :: string.
Per utilizzare questa classe, dobbiamo prima includerla nel nostro spazio di lavoro utilizzando il preprocessore #include come mostrato di seguito:
#include
Successivamente, possiamo dichiarare la nostra stringa utilizzando la parola chiave string. Per esempio:
string name = "John";
L'istruzione precedente creerà una stringa denominata name per contenere il valore John.
Accesso ai valori stringa
In C ++, possiamo accedere ai valori della stringa utilizzando il nome della stringa. Per esempio:
#includeusing namespace std;int main() {char name[5] = { 'J', 'o', 'h', 'n', '\0' };cout << "String value is: ";cout << name << endl;return 0;}
Produzione:
Ecco uno screenshot del codice:
Spiegazione del codice:
- Includere il file di intestazione iostream nel nostro codice. Ci permetterà di leggere e scrivere sulla console.
- Compreso lo spazio dei nomi std in modo da usare le sue classi e funzioni senza chiamarlo.
- Chiamando la funzione main () all'interno della quale va aggiunta la logica del programma. La {segna l'inizio del corpo della funzione main ().
- Dichiarare una stringa di caratteri e assegnargli il nome nome. La stringa memorizzerà il valore John. Lo spazio extra memorizzerà il carattere nullo.
- Stampa del testo sulla console.
- Stampa il valore della stringa denominata nome sulla console.
- La funzione main () dovrebbe restituire un valore se il programma funziona correttamente.
- Fine del corpo della funzione main ().
Ecco un altro esempio che utilizza la classe stringa standard C ++:
#include#include using namespace std;int main() {string name = "Guru99";cout << "The name is : " << name << endl;return 0;}
Produzione:
Ecco uno screenshot del codice:
Spiegazione del codice:
- Includere il file di intestazione iostream nel nostro codice. Ci permetterà di leggere e scrivere sulla console.
- Includere la classe stringa standard nel nostro codice.
- Compreso lo spazio dei nomi std in modo da usare le sue classi e funzioni senza chiamarlo.
- Chiamando la funzione main () all'interno della quale va aggiunta la logica del programma. La {segna l'inizio del corpo della funzione main ().
- Dichiarare una stringa e assegnargli il nome name. La stringa memorizzerà il valore Guru99.
- Stampa il valore del nome della stringa accanto al testo sulla console.
- La funzione main () dovrebbe restituire un valore se il programma funziona correttamente.
- Fine del corpo della funzione main ().
Funzioni stringa:
Spesso vorrai manipolare le stringhe. C ++ fornisce un'ampia gamma di funzioni che puoi usare per questo. Queste funzioni sono definite nella classe CString, quindi dobbiamo includerla nel nostro codice per poter utilizzare le funzioni. Parliamo di alcuni:
strcpy ()
Questa è la funzione di copia della stringa. Copia una stringa in un'altra stringa.
Sintassi:
strcpy(string1, string2);
I due parametri della funzione, stringa1 e stringa2, sono stringhe. La funzione copierà la stringa string1 nella stringa 1.
strcat ()
Questa è la funzione di concatenazione delle stringhe. Concatena le stringhe.
Sintassi:
strcat(string1, string2);
I due parametri della funzione, stringa1 e stringa2, sono le stringhe da concatenare. La funzione precedente concatenerà la stringa string2 alla fine della stringa string1.
strlen ()
Questa è la funzione di lunghezza della stringa. Restituisce la lunghezza della stringa passata come argomento.
Sintassi:
strnlen(string1)
Il parametro string1 è il nome della stringa la cui lunghezza deve essere determinata. La funzione precedente restituirà la lunghezza della stringa string1.
strcmp ()
Questa è la funzione di confronto delle stringhe. Viene utilizzato per il confronto delle stringhe.
Sintassi:
strcmp(string1, string2);
La funzione precedente restituirà 0 se le stringhe stringa1 e stringa2 sono simili, minore di 0 se stringa1
Esempio:
L'esempio seguente mostra come utilizzare le funzioni di stringa precedenti:
#include#include using namespace std;int main() {char name1[10] = "Guru99";char name2[10] = "John";char name3[10];int len;strcpy(name3, name1);cout << "strcpy( name3, name1) : " << name3 << endl;strcat(name1, name2);cout << "strcat( name1, name2): " << name1 << endl;len = strlen(name1);cout << "strlen(name1) : " << len << endl;return 0;}
Produzione:
Ecco uno screenshot del codice:
Spiegazione del codice:
- Includere il file di intestazione iostream nel nostro codice. Ci permetterà di leggere e scrivere sulla console.
- Includere la classe CString standard nel nostro codice.
- Compreso lo spazio dei nomi std in modo da usare le sue classi e funzioni senza chiamarlo.
- Chiamando la funzione main () all'interno della quale va aggiunta la logica del programma. La {segna l'inizio del corpo della funzione main ().
- Dichiarare una stringa di 10 caratteri e assegnargli il nome name1. La stringa memorizzerà il valore Guru99.
- Dichiarare una stringa di 10 caratteri e assegnargli il nome name2. La stringa memorizzerà il valore John.
- Dichiarare una stringa di 10 caratteri e assegnargli il nome name3.
- Dichiarazione di una variabile intera denominata len.
- Copiando la stringa name1 nella stringa name3.
- Stampa il valore della stringa name1 accanto al testo sulla console. Dovrebbe stampare Guru99.
- Concatenando le stringhe name2 alla fine della stringa name1. Il valore di name1 ora è Guru99John.
- Stampa il valore della stringa name1 accanto al testo sulla console. Dovrebbe stampare Guru99John
- Determinazione della lunghezza della stringa denominata name1 e assegnazione del valore di length alla variabile len.
- Stampa il valore della variabile len insieme ad altro testo sulla console.
- La funzione main () dovrebbe restituire un valore se il programma funziona correttamente.
- Fine del corpo della funzione main ().
Sommario
- Una stringa è una sequenza di caratteri.
- Le stringhe appartengono alla classe di stringhe standard in C ++.
- Possiamo dichiarare stringhe usando la stringa di caratteri in stile C o la classe di stringhe standard.
- La funzione strcpy () copia una stringa in un'altra.
- La funzione strcat () concatena due funzioni.
- La funzione strlen () restituisce la lunghezza di una funzione.
- La funzione strcmp () confronta due stringhe.