Struny v C ++: strcpy (), strcat (), strlen (), strcmp () PRÍKLADY

Obsah:

Anonim

Čo je to reťazec?

Reťazec je postupnosť znakov. Reťazec C ++ je objektom triedy std :: string. Znaky sú uložené sekvencie bajtov s povoleným prístupom k jedinému bajtu znakov.

Reťazce C ++ dynamicky alokujú pamäť. Ak je to potrebné, môže byť reťazcu v priebehu behu pridelená viac pamäte. Pretože neexistuje žiadne predbežné pridelenie pamäte, žiadne plytvanie pamäťou. Na reťazcoch môžeme vykonávať rôzne operácie, vrátane porovnaní, zreťazenia, konverzie atď.

V tomto výučbe pre C ++ sa dozviete:

  • Čo je to reťazec?
  • Deklarovanie reťazcov
    • Reťazec znakov v štýle C.
    • std :: reťazec
  • Prístup k hodnotám reťazca
  • Funkcie reťazca:
    • strcpy ()
    • strcat ()
    • strlen ()
    • strcmp ()
    • Príklad:

Deklarovanie reťazcov

C ++ podporuje dva typy reťazcových vyhlásení:

  • Reťazec znakov v štýle C.
  • Typ triedy reťazca

Reťazec znakov v štýle C.

Tento typ deklarácie reťazca bol zavedený v programovacom jazyku C. C ++ ju naďalej podporuje. Je to jednoducho jednorozmerné pole znakov zakončené nulovým znakom (\ 0). Reťazec zakončený nulou má znaky, ktoré tvoria reťazec, za ktorými nasleduje nulová hodnota.

Zvážte vyhlásenie reťazca uvedené nižšie:

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

Vyššie uvedená deklarácia vytvorí reťazec, ktorý tvorí slovo Ján. Slovo má 4 znaky, ale reťazec má veľkosť 5. Dodatočný priestor umožňuje držať nulový znak.

Pomocou pravidla inicializácie poľa môžeme vyššie uvedený príkaz napísať nasledovne:

char name[] = "John";

Upozorňujeme, že na koniec reťazcovej konštanty nemusíte umiestňovať nulový znak. Kompilátor C ++ pri inicializácii poľa automaticky umiestni znak „\ 0“ na koniec reťazca.

std :: reťazec

Štandardná knižnica C ++ poskytuje triedu reťazcov, ktorá podporuje rôzne operácie s reťazcami. Je napísaný ako std :: string.

Ak chcete používať túto triedu, musíme ju najskôr zahrnúť do nášho pracovného priestoru pomocou preprocesora #include, ako je uvedené nižšie:

#include

Ďalej môžeme deklarovať náš reťazec pomocou kľúčového slova string. Napríklad:

string name = "John";

Vyššie uvedené vyhlásenie vytvorí reťazec s názvom name, ktorý bude obsahovať hodnotu John.

Prístup k hodnotám reťazca

V C ++ môžeme k hodnotám reťazca pristupovať pomocou názvu reťazca. Napríklad:

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

Výkon:

Tu je snímka obrazovky s kódom:

Vysvetlenie kódu:

  1. Vrátane súboru hlavičiek iostream v našom kóde. Umožní nám to čítať z konzoly a zapisovať do nej.
  2. Vrátane štandardného menného priestoru, aby bolo možné používať jeho triedy a funkcie bez jeho volania.
  3. Volanie funkcie main (), do ktorej by mala byť pridaná logika programu. Značka {označuje začiatok tela funkcie main ().
  4. Deklarácia reťazca znakov a jej pomenovanie. Reťazec uloží hodnotu John. Dodatočný priestor uloží nulový znak.
  5. Tlač textu na konzole.
  6. Vytlačí sa hodnota reťazca s názvom name na konzole.
  7. Funkcia main () by mala vrátiť hodnotu, ak program funguje dobre.
  8. Koniec tela hlavnej () funkcie.

Tu je ďalší príklad použitia štandardnej triedy reťazcov C ++:

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

Výkon:

Tu je snímka obrazovky s kódom:

Vysvetlenie kódu:

  1. Vrátane súboru hlavičiek iostream v našom kóde. Umožní nám to čítať z konzoly a zapisovať do nej.
  2. Vrátane štandardnej triedy reťazcov v našom kóde.
  3. Vrátane štandardného menného priestoru, aby bolo možné používať jeho triedy a funkcie bez jeho volania.
  4. Volanie funkcie main (), do ktorej by mala byť pridaná logika programu. Značka {označuje začiatok tela funkcie main ().
  5. Vyhlásenie reťazca a pomenovanie menom. Reťazec uloží hodnotu Guru99.
  6. Vytlačiť hodnotu názvu reťazca spolu s niektorým textom na konzole.
  7. Funkcia main () by mala vrátiť hodnotu, ak program funguje dobre.
  8. Koniec tela hlavnej () funkcie.

Funkcie reťazca:

Často budete chcieť manipulovať s reťazcami. C ++ poskytuje širokú škálu funkcií, ktoré môžete na tento účel použiť. Tieto funkcie sú definované v triede CString, takže aby sme ich mohli používať, musíme ich zahrnúť do nášho kódu. Poďme diskutovať o niektorých:

strcpy ()

Toto je funkcia kopírovania reťazca. Skopíruje jeden reťazec do iného reťazca.

Syntax:

strcpy(string1, string2);

Dva parametre funkcie, reťazec1 a reťazec2, sú reťazce. Funkcia skopíruje reťazec string1 do reťazca 1.

strcat ()

Toto je funkcia zreťazenia reťazca. Zreťazí to reťazce.

Syntax:

strcat(string1, string2);

Dva parametre funkcie, reťazec1 a reťazec2, sú reťazce, ktoré sa majú zreťaziť. Vyššie uvedená funkcia zreťazí reťazec string2 na koniec reťazca string1.

strlen ()

Toto je funkcia dĺžky reťazca. Vráti dĺžku reťazca, ktorý mu bol odovzdaný ako argument.

Syntax:

strnlen(string1)

Parameter string1 je názov reťazca, ktorého dĺžka sa má určiť. Vyššie uvedená funkcia vráti dĺžku reťazca string1.

strcmp ()

Toto je funkcia porovnania reťazcov. Používa sa na porovnanie reťazcov.

Syntax:

strcmp(string1, string2);

Vyššie uvedená funkcia vráti 0, ak sú si reťazce string1 a string2 podobné, menej ako 0, ak string1 string2.

Príklad:

Nasledujúci príklad ukazuje, ako sa dajú použiť vyššie uvedené reťazcové funkcie:

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

Výkon:

Tu je snímka obrazovky s kódom:

Vysvetlenie kódu:

  1. Vrátane súboru hlavičiek iostream v našom kóde. Umožní nám to čítať z konzoly a zapisovať do nej.
  2. Vrátane štandardnej triedy CString v našom kóde.
  3. Vrátane štandardného menného priestoru, aby bolo možné používať jeho triedy a funkcie bez jeho volania.
  4. Volanie funkcie main (), do ktorej by mala byť pridaná logika programu. Značka {označuje začiatok tela funkcie main ().
  5. Vyhlásenie reťazca s 10 znakmi a pomenovania name1. Reťazec uloží hodnotu Guru99.
  6. Vyhlásenie reťazca s 10 znakmi a pomenovania name2. Reťazec uloží hodnotu John.
  7. Deklarovanie reťazca s 10 znakmi a pomenovanie name3.
  8. Deklarovanie celočíselnej premennej s názvom len.
  9. Kopírovanie názvu reťazca1 do názvu reťazca3.
  10. Tlač hodnoty reťazca name1 popri niektorom texte na konzole. Malo by tlačiť Guru99.
  11. Zreťazenie reťazcov name2 na koniec názvu reťazca1. Hodnota name1 je teraz Guru99John.
  12. Tlač hodnoty reťazca name1 popri niektorom texte na konzole. Malo by tlačiť Guru99John
  13. Určenie dĺžky reťazca s názvom name1 a priradenie hodnoty dĺžky k premennej len.
  14. Tlač hodnoty premennej len spolu s iným textom na konzole.
  15. Funkcia main () by mala vrátiť hodnotu, ak program funguje dobre.
  16. Koniec tela hlavnej () funkcie.

Zhrnutie

  • Reťazec je postupnosť znakov.
  • Reťazce patria do štandardnej triedy reťazcov v C ++.
  • Reťazce môžeme deklarovať pomocou znakového reťazca v štýle C alebo štandardnej triedy reťazcov.
  • Funkcia strcpy () kopíruje jeden reťazec do druhého.
  • Funkcia strcat () spája dve funkcie.
  • Funkcia strlen () vracia dĺžku funkcie.
  • Funkcia strcmp () porovnáva dva reťazce.