Șiruri C ++: strcpy (), strcat (), strlen (), strcmp () EXEMPLE

Cuprins:

Anonim

Ce este un șir?

Un șir este o secvență de caractere. Un șir C ++ este un obiect al clasei std :: string. Caracterele sunt secvențe stocate de octeți cu acces la un singur octet de caractere permis.

Șirurile C ++ alocă memoria dinamic. Dacă este necesar, poate fi alocată mai multă șir în timpul rulării. Deoarece nu există o alocare prealabilă a memoriei, nu există risipă de memorie. Putem efectua diverse operații pe șiruri, inclusiv comparații, concatenare, conversie etc.

În acest tutorial C ++, veți învăța:

  • Ce este un șir?
  • Declararea corzilor
    • Șir de caractere în stil C
    • std :: string
  • Accesarea valorilor șirului
  • Funcții de șir:
    • strcpy ()
    • strcat ()
    • strlen ()
    • strcmp ()
    • Exemplu:

Declararea corzilor

C ++ acceptă două tipuri de declarații șir:

  • Șir de caractere în stil C
  • Tipul clasei de șiruri

Șir de caractere în stil C

Acest tip de declarație șir a fost introdus în limbajul de programare C. C ++ continuă să o susțină. Este pur și simplu o matrice unidimensională de caractere terminată cu un caracter nul (\ 0). Un șir cu terminare nulă are caractere care alcătuiesc șirul, urmat apoi de un nul.

Luați în considerare declarația șir de mai jos:

char name[5] = {'J', 'o', 'h', 'n', '\0'};

Declarația de mai sus creează un șir care formează cuvântul Ioan. Cuvântul are 4 caractere, dar șirul are o dimensiune de 5. Spațiul suplimentar permite menținerea caracterului nul.

Folosind regula de inițializare a matricei, putem scrie afirmația de mai sus după cum urmează:

char name[] = "John";

Rețineți că nu trebuie să plasați caracterul nul la sfârșitul constantei șirului. Compilatorul C ++ va plasa automat „\ 0” la sfârșitul șirului la inițializarea matricei.

std :: string

Biblioteca standard C ++ oferă clasa de șiruri care acceptă diverse operații de șiruri. Este scris ca std :: string.

Pentru a utiliza această clasă, trebuie mai întâi să o includem în spațiul nostru de lucru folosind preprocesatorul #include așa cum se arată mai jos:

#include

Apoi, putem declara șirul nostru folosind cuvântul cheie șir. De exemplu:

string name = "John";

Afirmația de mai sus va crea un șir denumit nume pentru a deține valoarea John.

Accesarea valorilor șirului

În C ++, putem accesa valorile șirului folosind numele șirului. De exemplu:

#include using namespace std;int main() {char name[5] = { 'J', 'o', 'h', 'n', '\0' };cout << "String value is: ";cout << name << endl;return 0;}

Ieșire:

Iată o captură de ecran a codului:

Explicatie cod:

  1. Includerea fișierului antet iostream în codul nostru. Ne va permite să citim și să scriem pe consolă.
  2. Includerea spațiului de nume std pentru a-și folosi clasele și funcțiile fără a-l apela.
  3. Apelarea funcției main () în cadrul căreia ar trebui adăugată logica programului. {Marchează începutul corpului funcției main ().
  4. Declarați un șir de caractere și dați-i numele. Șirul va stoca valoarea John. Spațiul suplimentar va stoca caracterul nul.
  5. Tipărirea unui text pe consolă.
  6. Imprimarea valorii șirului denumit nume pe consolă.
  7. Funcția main () ar trebui să returneze o valoare dacă programul rulează bine.
  8. Sfârșitul corpului funcției main ().

Iată un alt exemplu folosind clasa de șiruri standard C ++:

#include #include using namespace std;int main() {string name = "Guru99";cout << "The name is : " << name << endl;return 0;}

Ieșire:

Iată o captură de ecran a codului:

Explicatie cod:

  1. Includerea fișierului antet iostream în codul nostru. Ne va permite să citim și să scriem pe consolă.
  2. Includerea clasei de șir standard în codul nostru.
  3. Includerea spațiului de nume std pentru a-și folosi clasele și funcțiile fără a-l apela.
  4. Apelarea funcției main () în cadrul căreia ar trebui adăugată logica programului. {Marchează începutul corpului funcției main ().
  5. Declararea unui șir și denumirea acestuia. Șirul va stoca valoarea Guru99.
  6. Tipărirea valorii numelui șirului alături de un text pe consolă.
  7. Funcția main () ar trebui să returneze o valoare dacă programul rulează bine.
  8. Sfârșitul corpului funcției main ().

Funcții de șir:

Veți dori adesea să manipulați corzile. C ++ oferă o gamă largă de funcții pe care le puteți utiliza pentru aceasta. Aceste funcții sunt definite în clasa CString, prin urmare, trebuie să o includem în codul nostru pentru a utiliza funcțiile. Să discutăm câteva:

strcpy ()

Aceasta este funcția de copiere șir. Copiază un șir în alt șir.

Sintaxă:

strcpy(string1, string2);

Cei doi parametri ai funcției, șirul1 și șirul2, sunt șiruri. Funcția va copia șirul șir 1 în șirul 1.

strcat ()

Aceasta este funcția de concatenare a șirului. Concatenează șiruri.

Sintaxă:

strcat(string1, string2);

Cei doi parametri ai funcției, șirul1 și șirul2 sunt șirurile care trebuie concatenate. Funcția de mai sus va concatena șirul șir2 la sfârșitul șirului șir1.

strlen ()

Aceasta este funcția de lungime a șirului. Întoarce lungimea șirului transmis ca argument.

Sintaxă:

strnlen(string1)

Parametrul șir1 este numele șirului a cărui lungime urmează să fie determinată. Funcția de mai sus va returna lungimea șirului șir1.

strcmp ()

Aceasta este funcția de comparare a șirurilor. Este folosit pentru compararea șirurilor.

Sintaxă:

strcmp(string1, string2);

Funcția de mai sus va returna 0 dacă șirurile șir1 și șirul2 sunt similare, mai puțin de 0 dacă șirul1 <șirul2 și mai mare decât 0 dacă șirul1> șirul2.

Exemplu:

Următorul exemplu demonstrează cum se utilizează funcțiile șirului de mai sus:

#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;}

Ieșire:

Iată o captură de ecran a codului:

Explicatie cod:

  1. Includerea fișierului antet iostream în codul nostru. Ne va permite să citim și să scriem pe consolă.
  2. Includerea clasei CString standard în codul nostru.
  3. Includerea spațiului de nume std pentru a-și folosi clasele și funcțiile fără a-l apela.
  4. Apelarea funcției main () în cadrul căreia ar trebui adăugată logica programului. {Marchează începutul corpului funcției main ().
  5. Declararea unui șir de 10 caractere și atribuirea numelui name1. Șirul va stoca valoarea Guru99.
  6. Declarați un șir de 10 caractere și dați-i numele name2. Șirul va stoca valoarea John.
  7. Declarați un șir de 10 caractere și dați-i numele name3.
  8. Declararea unei variabile întregi numite len.
  9. Copierea numelui șirului1 în numele șirului3.
  10. Imprimarea valorii șirului nume1 alături de un text pe consolă. Ar trebui să imprime Guru99.
  11. Concatenarea șirurilor nume2 la sfârșitul șirului nume1. Valoarea name1 este acum Guru99John.
  12. Imprimarea valorii șirului nume1 alături de un text pe consolă. Ar trebui să imprime Guru99John
  13. Determinarea lungimii șirului numit nume1 și atribuirea valorii lungimii variabilei len.
  14. Imprimarea valorii variabilei len alături de un alt text de pe consolă.
  15. Funcția main () ar trebui să returneze o valoare dacă programul rulează bine.
  16. Sfârșitul corpului funcției main ().

rezumat

  • Un șir este o secvență de caractere.
  • Șirurile aparțin clasei de șiruri standard din C ++.
  • Putem declara șiruri folosind șirul de caractere în stil C sau clasa de șir standard.
  • Funcția strcpy () copiază un șir în altul.
  • Funcția strcat () concatenează două funcții.
  • Funcția strlen () returnează lungimea unei funcții.
  • Funcția strcmp () compară două șiruri.