Hosszának meghatározása vonalak
Nagyon gyakran, amikor dolgozik húrok kell tudni, hogy hány karakter a szöveg tartalmaz. Annak tisztázása információkat a string hossza a header fájlban string.h leírt funkció strlen (). A szintaxisa Ez a funkció a következő:
size_t strlen (const char * string)
A funkció az egyedüli paraméter kap egy mutatót, hogy az elején húr vonalak, kiszámítja a beérkezett előjel nélküli egész, és visszaadja a karaktersorozatot (size_t). sizeof () függvény egy értéket eggyel kevesebb, mint az adott tömb miatt tartalék helyet a karakter „\ 0”. A következő kódrészlet használatát mutatja strlen () függvényt:
char Str [] = "ABCDEFGHIJK";
előjel nélküli int i; i = strlen (Str);
Gyakran sizeof () függvény használható a bemeneti vonalak, mint egy második tervezési paraméter cin.getline (), hogy a
Sztringértékei lehet másolni az egyik a másikra. Erre a célra számos standard alábbi funkciók közül.
strcpy () függvény prototípus;
char * strcpy (char * STRL, const char * str2)
Például, a következő kód példányban értéke a húr Str „Másolás Test” sort:
strcpy (Str, "backup teszt";
char STRL [20] = "backup ellenőrzés";
// ptr most mutat
strncpy () függvény eltér strcpy () téma. az ő beállítása egy újabb érv meghatározza a karakterek száma, amelyek már nem kerülnek másolásra. A szintaxis a következő:
char * strncpy (char * STRL, const char * str2,
Ha a hossza kisebb, mint a hossza STRL str2, karakterek vágás következik be:
char cLong [] = "012345678901234567890123456789";
strncpy (CShort, cLong, 4);
cout «CShort« '\ n';
Az eredmény jelenik meg:
Azaz, a string sort CShort cLong az első négy szimbólum másolt elakadt eredeti érték ezáltal kezdődő rövid karakterlánc.
StrDup () függvény paraméterként kapja egy mutatót a sornak, elvégzi a memória kiosztás, másolás kijelölt területein egy húr, és visszaad egy pointert a sor elejére kapott példány. A szintaxis a következő:
char * StrDup (const char * forrás)
char * STRL = "Az eljárás nem található";
Egybetoldjuk (vagy csatlakoznak) vonalak gyakran használják képező új karaktersort. Ehhez a művelethez a standard könyvtár kínál strcat () és strncat ().
strcat () függvény a következő szintaxissal:
char * strcat (char * STRL, const char * str2)
Ennek eredményeként, a kilépési munka tartalmát a húr által mutatott str2, csatlakozik a tartalmát a húr által hivatkozott STRL. Visszaadja a függvénymutatóval STRL pontot az így kapott szöveget. Az érték a string array STRL elegendőnek kell lennie ahhoz, hogy tárolja a kombinált szöveget.
A következő példában, a húr str inicializálunk egy példányát strcpy (), és egészíti ki részkarakterláncként segítségével strcat () funkció:
strcpy (str, "hogy továbbra is");
strcat (str, "press");
strncatO funkciót is ellát összefűzés húr, de csak összeköti a harmadik paraméter megadott számú karaktert (előjel nélküli egész):
char * strncat (char * STRL, const char * str2, size_t num)
A függvény visszaad egy pointert a sor elejére kialakult STRL. Az alábbi példa végez szövegösszefűzés STRL első hét karakter az részsztring str2:
char STRL [90] = "A folytatáshoz"; char str2 [30] = "Press"; strncat (STRL, str2,7); cout «STRL;
Ennek eredményeként, a vonal jelenik meg: „Press a folytatáshoz.”