C ++ nizovi: strcpy (), strcat (), strlen (), strcmp () PRIMJERI

Sadržaj:

Anonim

Što je niz?

Niz je niz znakova. Niz C ++ objekt je klase std :: string. Znakovi su pohranjene sekvence bajtova s ​​dopuštenim pristupom jednom bajtu znakova.

C ++ nizovi dinamički raspoređuju memoriju. Po potrebi se nizu tijekom izvođenja može dodijeliti više memorije. Budući da ne postoji dodjela memorije, nema gubitka memorije. Možemo izvoditi razne operacije na žicama, uključujući usporedbe, spajanje, pretvorbu itd.

U ovom C ++ tutorialu naučit ćete:

  • Što je niz?
  • Deklariranje nizova
    • Niz znakova u stilu C
    • std :: string
  • Pristup nizu vrijednosti
  • String funkcije:
    • strcpy ()
    • strcat ()
    • strlen ()
    • strcmp ()
    • Primjer:

Deklariranje nizova

C ++ podržava dvije vrste deklaracija niza:

  • Niz znakova u stilu C
  • Vrsta klase niza

Niz znakova u stilu C

Ova vrsta deklaracije niza uvedena je u programskom jeziku C. C ++ ga nastavlja podržavati. To je jednostavno jednodimenzionalni niz znakova koji se završavaju nulom (\ 0). Niz koji se završava nulom sadrži znakove koji čine niz, a zatim slijedi nula.

Razmotrite deklaraciju niza koja je dana u nastavku:

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

Gornja deklaracija stvara niz koji tvori riječ Ivan. Riječ ima 4 znaka, ali niz ima veličinu 5. Dodatni prostor omogućuje zadržavanje null znaka.

Koristeći pravilo inicijalizacije niza, gornju izjavu možemo napisati na sljedeći način:

char name[] = "John";

Imajte na umu da ne morate stavljati null znak na kraj konstante niza. Kompajler C ++ automatski će postaviti '\ 0' na kraj niza prilikom inicijalizacije niza.

std :: string

Standardna knjižnica C ++ pruža klasu stringa koja podržava razne operacije niza. Napisan je kao std :: string.

Da bismo koristili ovu klasu, prvo je moramo uključiti u svoj radni prostor pomoću pretprocesora #include kako je prikazano dolje:

#include

Dalje, možemo deklarirati svoj niz pomoću ključne riječi string. Na primjer:

string name = "John";

Gornja izjava stvorit će niz s imenom koji će sadržavati vrijednost John.

Pristup nizu vrijednosti

U C ++-u vrijednostima niza možemo pristupiti pomoću imena niza. Na primjer:

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

Izlaz:

Evo snimke zaslona koda:

Objašnjenje koda:

  1. Uključujući iostream datoteku zaglavlja u naš kod. Omogućit će nam čitanje s konzole i pisanje na nju.
  2. Uključujući prostor imena std kako bi koristio njegove klase i funkcije bez poziva.
  3. Pozivanje funkcije main () unutar koje treba dodati logiku programa. {Označava početak tijela glavne () funkcije.
  4. Deklariranje niza znakova i davanje imena. Niz će pohraniti vrijednost John. Dodatni prostor pohranit će null znak.
  5. Ispis teksta na konzoli.
  6. Ispis vrijednosti niza s imenom name na konzoli.
  7. Funkcija main () trebala bi vratiti vrijednost ako program dobro radi.
  8. Kraj tijela glavne () funkcije.

Evo još jednog primjera korištenja C ++ standardne klase nizova:

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

Izlaz:

Evo snimke zaslona koda:

Objašnjenje koda:

  1. Uključujući iostream datoteku zaglavlja u naš kod. Omogućit će nam čitanje s konzole i pisanje na nju.
  2. Uključujući standardnu ​​klasu nizova u naš kod.
  3. Uključujući prostor imena std kako bi koristio njegove klase i funkcije bez poziva.
  4. Pozivanje funkcije main () unutar koje treba dodati logiku programa. {Označava početak tijela glavne () funkcije.
  5. Deklariranje niza i davanje imena. Niz će pohraniti vrijednost Guru99.
  6. Ispis vrijednosti naziva niza uz tekst na konzoli.
  7. Funkcija main () trebala bi vratiti vrijednost ako program dobro radi.
  8. Kraj tijela glavne () funkcije.

String funkcije:

Često ćete htjeti manipulirati žicama. C ++ nudi širok raspon funkcija koje za to možete koristiti. Te su funkcije definirane u klasi CString, stoga je moramo uključiti u naš kod da bismo mogli koristiti funkcije. Razmotrimo neke:

strcpy ()

Ovo je funkcija kopiranja niza. Kopira jedan niz u drugi niz.

Sintaksa:

strcpy(string1, string2);

Dva parametra funkcije, string1 i string2, su nizovi. Funkcija će kopirati niz string1 u niz 1.

strcat ()

Ovo je funkcija povezivanja niza. Spaja žice.

Sintaksa:

strcat(string1, string2);

Dva parametra funkcije, string1 i string2 su nizovi koji se spajaju. Gornja funkcija spojit će niz string2 na kraj niza string1.

strlen ()

Ovo je funkcija duljine niza. Vraća duljinu niza koji mu je proslijeđen kao argument.

Sintaksa:

strnlen(string1)

Parametar string1 naziv je niza čiju duljinu treba odrediti. Gornja funkcija vratit će duljinu niza string1.

strcmp ()

Ovo je funkcija usporedbe niza. Koristi se za usporedbu nizova.

Sintaksa:

strcmp(string1, string2);

Gornja funkcija će vratiti 0 ako su nizovi string1 i string2 slični, manje od 0 ako je string1 string2.

Primjer:

Sljedeći primjer pokazuje kako koristiti gornje funkcije niza:

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

Izlaz:

Evo snimke zaslona koda:

Objašnjenje koda:

  1. Uključujući iostream datoteku zaglavlja u naš kod. Omogućit će nam čitanje s konzole i pisanje na nju.
  2. Uključivanje standardne klase CString u naš kod.
  3. Uključujući prostor imena std kako bi koristio njegove klase i funkcije bez poziva.
  4. Pozivanje funkcije main () unutar koje treba dodati logiku programa. {Označava početak tijela glavne () funkcije.
  5. Deklariranje niza od 10 znakova i davanje imena naziv1. Niz će pohraniti vrijednost Guru99.
  6. Deklariranje niza od 10 znakova i davanje imena 2. Niz će pohraniti vrijednost John.
  7. Deklariranje niza od 10 znakova i davanje imena 3.
  8. Deklariranje cjelobrojne varijable pod nazivom len.
  9. Kopiranje imena niza1 u naziv niza3.
  10. Ispis vrijednosti imena niza1 uz tekst na konzoli. Trebao bi tiskati Guru99.
  11. Spajanje niza name2 na kraj niza name1. Vrijednost name1 sada je Guru99John.
  12. Ispis vrijednosti imena niza1 uz tekst na konzoli. Trebao bi tiskati Guru99John
  13. Određivanje duljine niza s imenom name1 i dodjeljivanje vrijednosti duljine varijabli len.
  14. Ispis vrijednosti len varijable uz neki drugi tekst na konzoli.
  15. Funkcija main () trebala bi vratiti vrijednost ako program dobro radi.
  16. Kraj tijela glavne () funkcije.

Sažetak

  • Niz je niz znakova.
  • Nizovi pripadaju standardnoj klasi nizova u C ++.
  • Nizove možemo deklarirati pomoću niza znakova u stilu C ili standardne klase nizova.
  • Funkcija strcpy () kopira jedan niz u drugi.
  • Funkcija strcat () spaja dvije funkcije.
  • Funkcija strlen () vraća duljinu funkcije.
  • Funkcija strcmp () uspoređuje dvije žice.