Mi az a húr?
A karakterlánc egy karaktersorozat. A C ++ karakterlánc az std :: string osztály objektuma. A karakterek bájtsorozatok, amelyek egyetlen karakter bájthoz férnek hozzá.
A C ++ húrok dinamikusan osztják ki a memóriát. Szükség esetén több memóriát lehet lefoglalni a karakterlánc számára a futás ideje alatt. Mivel nincs memória-kiosztás, nincs memóriapazarlás. Különböző műveleteket hajthatunk végre húrokon, beleértve összehasonlításokat, összefűzéseket, átalakításokat stb.
Ebben a C ++ oktatóanyagban megtudhatja:
- Mi az a húr?
- Húrok deklarálása
- C-stílusú karakterlánc
- std :: string
- Karakterlánc-értékek elérése
- Karakterlánc funkciók:
- strcpy ()
- strcat ()
- strlen ()
- strcmp ()
- Példa:
Húrok deklarálása
A C ++ kétféle string deklarációt támogat:
- C stílusú karakterlánc
- Karakterlánc típusa
C-stílusú karakterlánc
Ezt a karakterlánc-deklarációt C programozási nyelven vezették be. A C ++ továbbra is támogatja. Ez egyszerűen egydimenziós karaktertömb, null karakterrel (\ 0) végződve. A null-végű karakterlánc olyan karakterekkel rendelkezik, amelyek alkotják a karakterláncot, majd egy null követi.
Vegye figyelembe az alább megadott string deklarációt:
char name[5] = {'J', 'o', 'h', 'n', '\0'};
A fenti nyilatkozat létrehoz egy karakterláncot, amely a John szót alkotja. A szónak 4 karaktere van, de a karakterlánc mérete 5. A plusz szóköz lehetővé teszi a null karakter megtartását.
A tömb inicializálási szabálya segítségével a következõ állítást írhatjuk a következõképpen:
char name[] = "John";
Ne feledje, hogy nem kell a null karaktert a karakterlánc konstans végére helyezni. A C ++ fordító a tömb inicializálásakor automatikusan elhelyezi a '\ 0' karakterlánc végén.
std :: string
A standard C ++ könyvtár biztosítja a string osztályt, amely támogatja a különféle string műveleteket. A std :: string formátumú.
Ennek az osztálynak a használatához először be kell építenünk a munkaterületünkbe az #include előfeldolgozó segítségével, az alábbiak szerint:
#include
Ezután deklarálhatjuk a karakterláncunkat a string kulcsszóval. Például:
string name = "John";
A fenti utasítás létrehoz egy nevű karakterláncot a John érték megtartására.
Karakterlánc-értékek elérése
A C ++ nyelven a karakterlánc értékéhez a string nevével férhetünk hozzá. Például:
#includeusing namespace std;int main() {char name[5] = { 'J', 'o', 'h', 'n', '\0' };cout << "String value is: ";cout << name << endl;return 0;}
Kimenet:
Itt van egy képernyőkép a kódról:
Kód Magyarázat:
- Az iostream fejlécfájl belefoglalása a kódunkba. Ez lehetővé teszi számunkra, hogy a konzolról olvassunk és írjunk.
- Beleértve az std névteret annak osztályainak és függvényeinek felhasználása érdekében, anélkül, hogy meghívnánk.
- A main () függvény meghívása, amelyen belül hozzá kell adni a program logikáját. A {(fő) 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 John értéket. Az extra szóköz a null karaktert fogja tárolni.
- Szöveg kinyomtatása a konzolra.
- A névvel ellátott karakterlánc értékének kinyomtatása a konzolra.
- A main () függvénynek vissza kell adnia egy értéket, ha a program jól fut.
- A fő () függvény törzsének vége.
Itt van egy másik példa a C ++ szabványos karakterlánc osztály használatával:
#include#include using namespace std;int main() {string name = "Guru99";cout << "The name is : " << name << endl;return 0;}
Kimenet:
Itt van egy képernyőkép a kódról:
Kód Magyarázat:
- Az iostream fejlécfájl belefoglalása a kódunkba. Ez lehetővé teszi számunkra, hogy a konzolról olvassunk és írjunk.
- Beleértve a szabványos karakterlánc osztályt a kódunkba.
- Beleértve az std névteret annak osztályainak és függvényeinek felhasználása érdekében, anélkül, hogy meghívnánk.
- A main () függvény meghívása, amelyen belül hozzá kell adni a program logikáját. A {(fő) függvény törzsének kezdetét jelöli.
- Karakterlánc deklarálása és a név megadása. A karakterlánc a Guru99 értéket tárolja.
- A karakterlánc nevének értékének kinyomtatása a konzolon lévő szöveg mellé.
- A main () függvénynek vissza kell adnia egy értéket, ha a program jól fut.
- A fő () függvény törzsének vége.
Karakterlánc funkciók:
Gyakran szeretné manipulálni a húrokat. A C ++ funkciók széles skáláját kínálja, amelyeket ehhez használhat. Ezeket a függvényeket a CString osztály határozza meg, ezért be kell építenü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ási függvény. Az egyik karakterláncot egy másik karakterláncba másolja.
Szintaxis:
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 string1 karakterláncot az 1 karakterláncba.
strcat ()
Ez a karakterlánc összefűző függvény. Összefűzi a húrokat.
Szintaxis:
strcat(string1, string2);
A függvény két paramétere, a string1 és a string2 a összefűzendő karakterláncok. A fenti függvény összefűzi a string2 karakterláncot a string1 végéig.
strlen ()
Ez a karakterlánc hossza függvény. Visszaadja a argumentumként átadott karakterlánc hosszát.
Szintaxis:
strnlen(string1)
A string1 paraméter annak a karakterláncnak a neve, amelynek hosszát meg kell határozni. A fenti függvény visszaadja a string1 hosszúságát.
strcmp ()
Ez a string összehasonlító függvény. Karakterlánc-összehasonlításra használják.
Szintaxis:
strcmp(string1, string2);
A fenti függvény 0-t ad vissza, ha a string1 és string2 karakterláncok hasonlóak, kevesebb, mint 0, ha string1
Példa:
Az alábbi példa bemutatja a fenti karakterlánc-függvények használatát:
#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;}
Kimenet:
Itt van egy képernyőkép a kódról:
Kód Magyarázat:
- Az iostream fejlécfájl belefoglalása a kódunkba. Ez lehetővé teszi számunkra, hogy a konzolról olvassunk és írjunk.
- Beleértve a szabványos CString osztályt a kódunkba.
- Beleértve az std névteret annak osztályainak és függvényeinek felhasználása érdekében, anélkül, hogy meghívnánk.
- A main () függvény meghívása, amelyen belül hozzá kell adni a program logikáját. A {(fő) függvény törzsének kezdetét jelöli.
- 10 karakterből álló karakterlánc deklarálása és a név név megadása A karakterlánc a Guru99 értéket tárolja.
- 10 karakterből álló karakterlánc deklarálása és a név név megadása2. A karakterlánc tárolja a John értéket.
- 10 karakterből álló karakterlánc deklarálása és a név megadása3.
- A len nevű egész változó deklarálása.
- A string1 név másolása a string3 névbe.
- A string1 értékének kinyomtatása a konzolon lévő szöveg mellé. Ki kellene nyomtatnia a Guru99-et.
- A string2 név összefűzése a string1 név végével. A name1 értéke most Guru99John.
- A string1 értékének kinyomtatása a konzolon lévő szöveg mellé. Ki kellene nyomtatnia a Guru99Johnt
- A name1 nevű karakterlánc hosszának meghatározása és a hosszúság értékének a len változóhoz rendelése.
- A len változó értékének kinyomtatása más szöveg mellé a konzolon.
- A main () függvénynek vissza kell adnia egy értéket, ha a program jól fut.
- A fő () függvény törzsének vége.
Összegzés
- A karakterlánc egy karaktersorozat.
- A húrok a standard karakterlánc osztályba tartoznak C ++ nyelven.
- A karakterláncokat deklarálhatjuk a C stílusú karakterlánc vagy a standard karakterlánc osztály használatával.
- Az strcpy () függvény átmásolja az egyik karakterláncot a másikba.
- Az strcat () függvény két függvényt összefűz.
- A strlen () függvény visszaadja a függvény hosszát.
- Az strcmp () függvény két karakterláncot hasonlít össze.