C++ Funzione stringa: strcpy(), strcat(), strlen(), strcmp() Esempio
Cos'è una stringa?
Una stringa è una sequenza di caratteri. UN C++ string è un oggetto della classe std::string. I caratteri sono sequenze memorizzate di byte con accesso consentito a un singolo byte di carattere.
C++ le stringhe allocano memoria dinamicamente. Se necessario, è possibile allocare più memoria alla stringa durante l'esecuzione. Poiché non vi è alcuna pre-allocazione di memoria, non vi è alcuno spreco di memoria. Possiamo eseguire varie operazioni sulle stringhe, tra cui confronti, 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 in Linguaggio di programmazione C.. C++ continua a sostenerlo. È semplicemente un array unidimensionale di caratteri che termina 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.
Utilizzando la regola di inizializzazione dell'array, possiamo scrivere l'istruzione precedente come segue:
char name[] = "John";
Tieni presente che non è necessario posizionare il carattere null alla fine della costante stringa. IL C++ il compilatore posizionerà automaticamente '\0' alla fine della stringa durante l'inizializzazione dell'array.
std::stringa
Lo standard C++ library fornisce la classe string che supporta varie operazioni sulle stringhe. È 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:
Spiegazione del codice:
- 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.
- Chiamando la funzione main() all'interno della quale va aggiunta la logica del programma. Il segno { segna 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:
Spiegazione del codice:
- 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.
- Chiamando la funzione main() all'interno della quale va aggiunta la logica del programma. Il segno { segna l'inizio del corpo della funzione main().
- Dichiarare una stringa e darle 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 è possibile utilizzare a questo scopo. Queste funzioni sono definite nella classe CString, quindi dobbiamo includerla nel nostro codice per poter utilizzare le funzioni. Discutiamone alcuni:
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 precedente 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:
strnlen(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 precedente restituirà 0 se le stringhe string1 e string2 sono simili, meno di 0 se string1 stringa2.
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:
Spiegazione del codice:
- Includere il file di intestazione iostream nel nostro codice. Ci permetterà di leggere e scrivere sulla console.
- Inclusa la classe CString standard nel nostro codice.
- Includere lo spazio dei nomi std in modo da utilizzare le sue classi e funzioni senza chiamarlo.
- Chiamando la funzione main() all'interno della quale va aggiunta la logica del programma. Il segno { segna l'inizio del corpo della funzione main().
- Dichiarare una stringa di 10 caratteri e darle il nome nome1. 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 name1 insieme al testo sulla console. Dovrebbe stampare Guru99.
- Concatenando le stringhe nome2 alla fine della stringa nome1. Il valore di nome1 ora è Guru99John.
- Stampa il valore della stringa name1 insieme al testo sulla console. Dovrebbe stampare Guru99John
- Determinare la lunghezza della stringa denominata nome1 e assegnare il valore di lunghezza alla variabile len.
- Stampa del 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 string standard in C++.
- Possiamo dichiarare stringhe utilizzando la stringa di caratteri in stile C o la classe stringa standard.
- La funzione strcpy() copia una stringa in un'altra.
- La funzione strcat() concatena due stringhe.
- La funzione strlen() restituisce la lunghezza di una stringa.
- La funzione strcmp() confronta due stringhe.