C++ Sztringfüggvény: strcpy(), strcat(), strlen(), strcmp()
⚡ Okos összefoglaló
C++ A strcpy, strcat, strlen és strcmp karakterláncfüggvények lehetővé teszik a programok számára szöveg másolását, illesztését, mérését és összehasonlítását. Ez az anyag elmagyarázza, mi a karakterlánc, hogyan deklarálhatunk C stílusú és std::string karakterláncokat, hogyan érhetjük el az értékeiket, és hogyan alkalmazhatjuk az alapvető karakterláncfüggvényeket példákkal illusztrálva.

Mi az a karakterlánc?
A karakterlánc karaktersorozat. A C++ A string az std::string osztály objektuma. A karakterek bájtsorozatokként vannak tárolva, és egyetlen karakterbájthoz lehet hozzáférni.
C++ A karakterláncok dinamikusan foglalják le a memóriát. Szükség esetén futásidőben több memória foglalható le a karakterlánc számára. Mivel nincs előzetes memóriafoglalás, 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 fajta karakterlánc-deklarációt a ... vezette be. C programozási nyelv. C++ továbbra is támogatja. Ez egyszerűen egy egydimenziós karaktertömb, amelyet egy null karakter (\0) zár le. Egy null-végződésű karakterlánc a karakterláncot alkotó karaktereket tartalmazza, amelyeket egy null követ.
Tekintsük az alábbi karakterlánc deklarációt:
char name[5] = {'J', 'o', 'h', 'n', '\0'};
A fenti deklaráció egy karakterláncot hoz létre, amely a John szót alkotja. A szó 4 karakterből áll, de a karakterlánc mérete 5. A plusz szóköz lehetővé teszi a null karakter tárolá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";
Megjegyzendő, hogy nem kell a null karaktert a karakterlánc-konstans végére helyezni. 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++ A könyvtár biztosítja a string osztályt, amely különféle karakterlánc-műveleteket támogat. std::string formátumban íródik.
A használatához először be kell illesztenünk a munkaterületünkbe az #include előfeldolgozó használatá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:
Itt van egy képernyőkép a kódról:
Code Magyarázat:
- Az iostream fejlécfájl belefoglalása a kódunkba. Lehetővé teszi számunkra, hogy olvassunk a konzolról és írjunk oda.
- Beleértve az std névteret, hogy az osztályait és függvényeit hívás nélkül használhassuk.
- 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.
- 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.
- Szöveg nyomtatása a konzolon.
- A név nevű karakterlánc értékének kinyomtatása a konzolon.
- A main() függvénynek értéket kell visszaadnia, ha a program jól fut.
- 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:
Itt van egy képernyőkép a kódról:
Code Magyarázat:
- Az iostream fejlécfájl belefoglalása a kódunkba. Lehetővé teszi számunkra, hogy olvassunk a konzolról és írjunk oda.
- Beleértve a szabványos karakterlánc osztályt a kódunkba.
- Beleértve az std névteret, hogy az osztályait és függvényeit hívás nélkül használhassuk.
- 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.
- Egy karakterlánc deklarálása és a név név megadása. A karakterlánc tárolja az értéket Guru99.
- A karakterlánc nevének értékének kinyomtatása néhány szöveg mellett a konzolon.
- A main() függvénynek értéket kell visszaadnia, ha a program jól fut.
- A main() függvény törzsének vége.
String funkciók be C++
Gyakran szeretnéd manipulálni a karakterláncokat. C++ számos függvényt kínál, amelyeket ehhez használhat. Ezek a függvények a fejléc, ezért be kell illesztenünk a kódunkba a függvények használatához. 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 a string2 karakterláncot a string1-be másolja.
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 a string2 karakterláncot a string1 karakterlánc végéhez fogja fűzni.
strlen()
Ez a karakterlánchossz függvény. Az argumentumként átadott karakterlánc hosszát adja vissza.
Syntax:
strlen(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 értéket ad vissza, ha a string1 és string2 karakterláncok hasonlóak, kisebbet, mint 0, ha string1 < string2, és nagyobbat, mint 0, ha 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:
Itt van egy képernyőkép a kódról:
Code Magyarázat:
- Az iostream fejlécfájl belefoglalása a kódunkba. Lehetővé teszi számunkra, hogy olvassunk a konzolról és írjunk oda.
- Beleértve a szabványt is fejléc a kódunkban.
- Beleértve az std névteret, hogy az osztályait és függvényeit hívás nélkül használhassuk.
- 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.
- Egy 10 karakterből álló karakterlánc deklarálása és a név1 név megadása. A karakterlánc tárolja az értéket Guru99.
- 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.
- 10 karakteres karakterlánc deklarálása és a név megadása3.
- Kijelentve egy egész szám változó len nevű.
- A string name1 másolása a string name3-ba.
- A name3 karakterlánc értékének kiírása szöveg mellett a konzolon. Ki kell nyomtatnia Guru99.
- A név2 karakterláncot a név1 karakterlánc végéhez fűzzük. A név1 értéke most már Guru99 János.
- A name1 karakterlánc értékének kiírása szöveg mellett a konzolon. Ki kell nyomtatnia Guru99 János.
- A név1 nevű karakterlánc hosszának meghatározása és a length értékének hozzárendelése a len változóhoz.
- A len változó értékének kinyomtatása más szöveggel együtt a konzolon.
- A main() függvénynek értéket kell visszaadnia, ha a program jól fut.
- A main() függvény törzsének vége.




