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:
Itt van egy képernyőkép a kódról:
Kód magyarázata:
- 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:
Kód magyarázata:
- 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 megadása. A karakterlánc tárolja a Guru99 értéket.
- 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++ 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:
Itt van egy képernyőkép a kódról:
Kód magyarázata:
- 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 CString 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.
- 10 karakterből álló karakterlánc deklarálása és a név megadása1. A karakterlánc tárolja a Guru99 értéket.
- 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 name1 karakterlánc értékének kinyomtatása néhány szöveg mellett a konzolon. Ki kell nyomtatnia a Guru99-et.
- A name2 karakterláncok összefűzése a name1 karakterlánc végére. A name1 értéke most Guru99John.
- A name1 karakterlánc értékének kinyomtatása néhány szöveg mellett a konzolon. Ki kell nyomtatnia a Guru99John-t
- A név1 nevű karakterlánc hosszának meghatározása és a len változóhoz a hossz érték hozzárendelése.
- A len változó értékének kinyomtatása más 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.
Ö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.