C++ String függvény: strcpy(), strcat(), strlen(), strcmp() Példa

Mi az a karakterlánc?

A karakterlánc karaktersorozat. A C++ A string az std::string osztály egyik objektuma. A karakterek tárolt bájtsorozatok, amelyek egyetlen karakterbájthoz is hozzáférhetnek.

C++ karakterláncok dinamikusan foglalják le a memóriát. Szükség esetén több memória foglalható a karakterlánchoz futási idő alatt. Mivel nincs memória előzetes lefoglalása, nincs memóriapazarlás. A karakterláncokon különféle műveleteket végezhetünk, beleértve az összehasonlítást, összefűzést, konverziót stb.

Karakterláncok deklarálása

C++ kétféle karakterlánc deklarációt támogat:

  • C-stílusú karakterlánc
  • String osztály típusa

C-stílusú karakterlánc

Ezt a típusú karakterlánc-deklarációt ben vezették be C programozási nyelv. C++ továbbra is támogatja. Ez egyszerűen egy egydimenziós karaktertömb, amely null karakterrel (\0) végződik. A null-végződésű karakterlánc olyan karaktereket tartalmaz, amelyek a karakterláncot alkotják, majd egy nulla következik.

Tekintsük az alábbi karakterlánc deklarációt:

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

A fenti deklaráció létrehoz egy karakterláncot, amely a János szót alkotja. A szó 4 karakterből áll, de a karakterlánc mérete 5. Az extra szóköz lehetővé teszi a null karakter megtartását.

A tömb inicializálási szabályával a fenti utasítást a következőképpen írhatjuk fel:

char name[] = "John";

Ne feledje, hogy nem kell a null karaktert a karakterlánc-konstans végére tenni. A C++ A fordító automatikusan a '\0'-t a karakterlánc végére helyezi a tömb inicializálása során.

std::string

A szabvány C++ könyvtár biztosítja a karakterlánc osztályt, amely támogatja a különféle karakterlánc-műveleteket. Std::stringként van írva.

Az osztály használatához először be kell helyeznünk a munkaterületünkbe az #include előfeldolgozóval az alábbiak szerint:

#include<string>

Ezután deklarálhatjuk a karakterláncunkat a string kulcsszó használatával. Például:

string name = "John";

A fenti utasítás egy név nevű karakterláncot hoz létre, amely tartalmazza a János értéket.

A karakterlánc értékek elérése

In C++, a karakterlánc nevével érhetjük el a karakterlánc értékeit. Például:

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

output:

A karakterlánc értékek elérése

Itt van egy képernyőkép a kódról:

A karakterlánc értékek elérése

Kód magyarázata:

  1. Az iostream fejlécfájl belefoglalása a kódunkba. Lehetővé teszi számunkra, hogy olvassunk a konzolról és írjunk oda.
  2. Beleértve az std névteret, hogy az osztályait és függvényeit hívás nélkül használhassuk.
  3. A main() függvény meghívása, amelyen belül a program logikáját hozzá kell adni. A { a main() függvény törzsének kezdetét jelöli.
  4. Karakterlánc deklarálása és a név megadása. A karakterlánc tárolja a János értéket. Az extra szóköz a null karaktert tárolja.
  5. Szöveg nyomtatása a konzolon.
  6. A név nevű karakterlánc értékének kinyomtatása a konzolon.
  7. A main() függvénynek értéket kell visszaadnia, ha a program jól fut.
  8. A main() függvény törzsének vége.

Itt van egy másik példa a C++ szabványos karakterlánc osztály:

#include <iostream>
#include <string>
using namespace std;
int main() {

	string name = "Guru99";
	
	cout << "The name is : " << name << endl;

	return 0;
}

output:

A karakterlánc értékek elérése

Itt van egy képernyőkép a kódról:

A karakterlánc értékek elérése

Kód magyarázata:

  1. Az iostream fejlécfájl belefoglalása a kódunkba. Lehetővé teszi számunkra, hogy olvassunk a konzolról és írjunk oda.
  2. Beleértve a szabványos karakterlánc osztályt a kódunkba.
  3. Beleértve az std névteret, hogy az osztályait és függvényeit hívás nélkül használhassuk.
  4. A main() függvény meghívása, amelyen belül a program logikáját hozzá kell adni. A { a main() függvény törzsének kezdetét jelöli.
  5. Egy karakterlánc deklarálása és a név megadása. A karakterlánc tárolja a Guru99 értéket.
  6. A karakterlánc nevének értékének kinyomtatása néhány szöveg mellett a konzolon.
  7. A main() függvénynek értéket kell visszaadnia, ha a program jól fut.
  8. A main() függvény törzsének vége.

String funkciók be C++

Gyakran szeretnéd manipulálni a karakterláncokat. C++ az ehhez használható funkciók széles skáláját kínálja. Ezek a függvények a CString osztályban vannak definiálva, ezért a függvények használatához be kell foglalnunk a kódunkba. Beszéljünk néhányról:

strcpy()

Ez a karakterlánc másolás funkciója. Az egyik karakterláncot egy másik karakterláncba másolja.

Syntax:

strcpy(string1, string2);

A függvény két paramétere, a string1 és a string2, karakterláncok. A függvény átmásolja a string2 karakterláncot a string1-be.

strcat()

Ez a karakterlánc-összefűzési függvény. Összefűzi a karakterláncokat.

Syntax:

strcat(string1, string2);

A függvény két paramétere, a string1 és a string2 az összefűzendő karakterláncok. A fenti függvény összefűzi a string2 karakterláncot a string1 végéhez.

strlen()

Ez a karakterlánchossz függvény. Az argumentumként átadott karakterlánc hosszát adja vissza.

Syntax:

strnlen(string1)

A string1 paraméter annak a karakterláncnak a neve, amelynek hosszát meg kell határozni. A fenti függvény a string1 hosszát adja vissza.

strcmp ()

Ez a karakterlánc-összehasonlító függvény. A karakterláncok összehasonlítására használják.

Syntax:

strcmp(string1, string2);

A fenti függvény 0-t ad vissza, ha a string1 és a string2 hasonlóak, kisebb, mint 0, ha a string1 string2.

Példa:

A következő példa bemutatja a fenti karakterlánc-függvények használatát:

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

output:

String funkciók be C++

Itt van egy képernyőkép a kódról:

String funkciók be C++

Kód magyarázata:

  1. Az iostream fejlécfájl belefoglalása a kódunkba. Lehetővé teszi számunkra, hogy olvassunk a konzolról és írjunk oda.
  2. Beleértve a szabványos CString osztályt a kódunkba.
  3. Beleértve az std névteret, hogy az osztályait és függvényeit hívás nélkül használhassuk.
  4. A main() függvény meghívása, amelyen belül a program logikáját hozzá kell adni. A { a main() függvény törzsének kezdetét jelöli.
  5. 10 karakterből álló karakterlánc deklarálása és a név megadása1. A karakterlánc tárolja a Guru99 értéket.
  6. 10 karakterből álló karakterlánc deklarálása és a név megadása2. A karakterlánc tárolja a János értéket.
  7. 10 karakteres karakterlánc deklarálása és a név megadása3.
  8. Kijelentve egy egész szám változó len nevű.
  9. A string name1 másolása a string name3-ba.
  10. A name1 karakterlánc értékének kinyomtatása néhány szöveg mellett a konzolon. Ki kell nyomtatnia a Guru99-et.
  11. A name2 karakterláncok összefűzése a name1 karakterlánc végére. A name1 értéke most Guru99John.
  12. A name1 karakterlánc értékének kinyomtatása néhány szöveg mellett a konzolon. Ki kell nyomtatnia a Guru99John-t
  13. A név1 nevű karakterlánc hosszának meghatározása és a len változóhoz a hossz érték hozzárendelése.
  14. A len változó értékének kinyomtatása más szöveg mellett a konzolon.
  15. A main() függvénynek értéket kell visszaadnia, ha a program jól fut.
  16. A main() függvény törzsének vége.

Összegzésként

  • A karakterlánc karaktersorozat.
  • A karakterláncok a szabványos karakterlánc osztályba tartoznak C++.
  • A karakterláncokat C-stílusú karakterlánc vagy szabványos karakterlánc-osztály használatával deklarálhatjuk.
  • Az strcpy() függvény az egyik karakterláncot a másikba másolja.
  • Az strcat() függvény két karakterláncot fűz össze.
  • Az strlen() függvény egy karakterlánc hosszát adja vissza.
  • Az strcmp() függvény két karakterláncot hasonlít össze.