C++ Funzioni per le stringhe: strcpy(), strcat(), strlen(), strcmp()
⚡ Riepilogo intelligente
C++ Le funzioni per le stringhe, come strcpy, strcat, strlen e strcmp, consentono ai programmi di copiare, unire, misurare e confrontare il testo. Questa risorsa spiega cos'è una stringa, come dichiarare stringhe in stile C e stringhe di tipo std::string, come accedere ai loro valori e come applicare le funzioni principali per le stringhe, con esempi pratici.
Cos'è una stringa?
Una stringa è una sequenza di caratteri. UN C++ `string` è un oggetto della classe `std::string`. I caratteri vengono memorizzati come sequenze di byte, con accesso consentito a un singolo byte di ciascun carattere.
C++ Le stringhe allocano la memoria in modo dinamico. Se necessario, è possibile allocare ulteriore memoria alla stringa durante l'esecuzione. Poiché non vi è preallocazione di memoria, non si verifica alcuno spreco di memoria. Possiamo eseguire diverse operazioni sulle stringhe, tra cui confronto, concatenazione, conversione, ecc.
Dichiarazione di stringhe
C++ supporta due tipi di dichiarazioni di stringa:
- Stringa di caratteri in stile C
- Tipo di classe stringa
Stringa di caratteri di tipo C
Questo tipo di dichiarazione di stringa è stato introdotto nel Linguaggio di programmazione C.. C++ continua a supportarlo. Si tratta semplicemente di un array unidimensionale di caratteri terminato da un carattere nullo (\0). Una stringa terminata da un carattere nullo ha i caratteri che compongono la stringa seguiti da un carattere nullo.
Considera la dichiarazione di stringa fornita di seguito:
char name[5] = {'J', 'o', 'h', 'n', '\0'};
La dichiarazione di cui sopra crea una stringa che forma la parola John. La parola ha 4 caratteri, ma la stringa ha una dimensione di 5. Lo spazio aggiuntivo consente di contenere il carattere nullo.
Utilizzando la regola di inizializzazione dell'array, possiamo scrivere l'istruzione precedente come segue:
char name[] = "John";
Nota che non è necessario inserire il carattere nullo alla fine della costante stringa. C++ il compilatore posizionerà automaticamente '\0' alla fine della stringa durante l'inizializzazione dell'array.
std::stringa
Lo standard C++ La libreria fornisce la classe stringa, che supporta varie operazioni sulle stringhe. Viene scritta come std::string.
Per utilizzare questa classe, dobbiamo prima includerla nel nostro spazio di lavoro utilizzando il preprocessore #include come mostrato di seguito:
#include <string>
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:
#include <iostream> using 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:
Code Spiegazione:
- Includere il file di intestazione iostream nel nostro codice. Ci permetterà di leggere e scrivere sulla console.
- Includere lo spazio dei nomi std in modo da utilizzare le sue classi e funzioni senza chiamarlo.
- Chiamata alla funzione main() all'interno della quale deve essere inserita la logica del programma. La parentesi graffa { indica l'inizio del corpo della funzione main().
- Dichiarare una stringa di caratteri e darle 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 name sulla console.
- La funzione main() dovrebbe restituire un valore se il programma funziona correttamente.
- Fine del corpo della funzione main().
Ecco un altro esempio di utilizzo di C++ classe di stringa standard:
#include <iostream> #include <string> using namespace std; int main() { string name = "Guru99"; cout << "The name is : " << name << endl; return 0; }
Produzione:
Ecco uno screenshot del codice:
Code Spiegazione:
- Includere il file di intestazione iostream nel nostro codice. Ci permetterà di leggere e scrivere sulla console.
- Inclusa la classe stringa standard nel nostro codice.
- Includere lo spazio dei nomi std in modo da utilizzare le sue classi e funzioni senza chiamarlo.
- Chiamata alla funzione main() all'interno della quale deve essere inserita la logica del programma. La parentesi graffa { indica l'inizio del corpo della funzione main().
- Dichiarare una stringa e assegnarle il nome name. La stringa memorizzerà il valore Guru99
- Stampa del valore del nome della stringa insieme al testo sulla console.
- La funzione main() dovrebbe restituire un valore se il programma funziona correttamente.
- Fine del corpo della funzione main().
Funzioni stringa in C++
Spesso vorrai manipolare le stringhe. C++ fornisce una vasta gamma di funzioni che puoi utilizzare a questo scopo. Queste funzioni sono definite nel intestazione, quindi dobbiamo includerla nel nostro codice per poter utilizzare le funzioni. Vediamone alcune:
stricpy()
Questa è la funzione di copia delle stringhe. Copia una stringa in un'altra stringa.
Sintassi:
strcpy(string1, string2);
I due parametri della funzione, string1 e string2, sono stringhe. La funzione copierà la stringa string2 in string1.
strcat ()
Questa è la funzione di concatenazione delle stringhe. Concatena le stringhe.
Sintassi:
strcat(string1, string2);
I due parametri della funzione, string1 e string2, sono le stringhe da concatenare. La funzione sopra riportata concatenerà la stringa string2 alla fine della stringa string1.
strlen ()
Questa è la funzione della lunghezza della stringa. Restituisce la lunghezza della stringa passata come argomento.
Sintassi:
strlen(string1);
Il parametro string1 è il nome della stringa di cui si vuole determinare la lunghezza. La funzione precedente restituirà la lunghezza della stringa string1.
strcmp ()
Questa è la funzione di confronto delle stringhe. Viene utilizzato per il confronto tra stringhe.
Sintassi:
strcmp(string1, string2);
La funzione sopra riportata restituirà 0 se le stringhe string1 e string2 sono simili, un valore inferiore a 0 se string1 < string2 e un valore superiore a 0 se string1 > string2.
Esempio:
L'esempio seguente mostra come utilizzare le funzioni stringa sopra indicate:
#include <iostream> #include <cstring> 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:
Code Spiegazione:
- Includere il file di intestazione iostream nel nostro codice. Ci permetterà di leggere e scrivere sulla console.
- Incluso lo standard intestazione nel nostro codice.
- Includere lo spazio dei nomi std in modo da utilizzare le sue classi e funzioni senza chiamarlo.
- Chiamata alla funzione main() all'interno della quale deve essere inserita la logica del programma. La parentesi graffa { indica l'inizio del corpo della funzione main().
- Dichiarazione di una stringa di 10 caratteri e assegnazione del nome name1. La stringa memorizzerà il valore Guru99
- Dichiarare una stringa di 10 caratteri e darle il nome name2. La stringa memorizzerà il valore John.
- Dichiarare una stringa di 10 caratteri e darle il nome name3.
- Dichiarare un variabile intera chiamato Len.
- Copia della stringa nome1 nella stringa nome3.
- Stampa il valore della stringa name3 insieme ad del testo sulla console. Dovrebbe stampare Guru99
- Concatenando la stringa name2 alla fine della stringa name1. Il valore di name1 è ora Guru99 Giovanni.
- Stampa il valore della stringa name1 insieme ad del testo sulla console. Dovrebbe stampare Guru99 Giovanni.
- Determinare la lunghezza della stringa denominata name1 e assegnare il valore della lunghezza alla variabile len.
- Stampare 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().





