Ebben a cikkben elmagyarázzuk, hogy milyen karakterláncok vannak C-ben, hogyan deklarálják őket, és hogyan valósítsuk meg őket a C programozásban.
Mik azok a karakterláncok a C programozásban?
A karakterláncok azok az egydimenziós tömbök, amelyeket a null \0 karakter. Karakterek és szövegek tárolására szolgálnak, és a karakterlánc minden karaktere egy bájtot foglal el a memóriából. A többi programozási nyelvtől eltérően a C-ben nem szerepel az adattípus neve karakterláncként, ehelyett az adatokat a char típusú.
Hogyan deklaráljunk karakterláncokat a C programozásban?
A C programozásban a következő módszerekkel deklarálhatunk egy karakterláncot:
Hozzárendelhet egy karakterláncot előre meghatározott mérettel. Például egy 8 karakteres korlátot a következőképpen kell deklarálni:
char teszt [ 8 ] = 'Üdvözöljük' ;
Egy másik módszer a karakterlánc hozzárendelésére C-ben a tömb méretének meghatározása nélkül:
char teszt [ ] = 'Üdvözöljük' ;
Egy karakterláncot egy meghatározott méretű karaktertömb használatával is hozzárendelhet:
char teszt [ 8 ] = { 'BAN BEN' , 'Ez' , 'én' , 'c' , 'O' , 'én' , 'Ez' , ' \0 ' } ;Vagy hozzárendelhet egy karakterláncot egy karaktertömbhöz úgy, hogy karakterenként inicializálja meghatározott méret nélkül:
char teszt [ ] = { 'BAN BEN' , 'Ez' , 'én' , 'c' , 'O' , 'én' , 'Ez' , ' \0 ' } ;
A null karakter „\0” egy karakterlánc végét jelenti. Annak meghatározásához, hogy a karakterlánc hol végződik, fontos, hogy a null karaktert minden karakter végére adjuk.
A fenti karakterlánc memóriaábrázolása a következő lesz:
Index | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Változó | BAN BEN | Ez | l | c | O | m | Ez | \0 |
A C-ben a null karaktert használják annak meghatározására, hogy a karakterlánc hol végződik. Ha a null karakter nincs jelen, ezek a függvények a karakterlánc végén túl is folytatják a memória feldolgozását, ami potenciálisan a kód váratlan viselkedéséhez vezethet.
Az alábbiakban egy teljes C programozási kód látható egy karakterlánc nyomtatásához.
#includeint fő- ( ) {
char teszt [ 8 ] = { 'BAN BEN' , 'Ez' , 'én' , 'c' , 'O' , 'én' , 'Ez' , ' \0 ' } ;
printf ( 'A kimenet: %s \n ' , teszt ) ;
Visszatérés 0 ;
}
A fenti program deklarál egy karaktertömb tesztet 8-as mérettel és inicializálja a karakterekkel 'Üdvözöljük' , és „\0” . Ezután a printf() funkciót a tesztben tárolt karakterlánc kinyomtatásához.
Kimenet
Vegye ki a karakterlánc bemenetét a felhasználótól a C programozásban
A beviteli karakterláncot a felhasználótól is átveheti a scanf() függvényt, és ehhez meg kell határoznia a karakterlánc tömb méretét. A következő példa kód a felhasználótól való bevitelhez:
#includeint fő- ( )
{
char név [ 10 ] ;
printf ( 'Írja be a nevet:' ) ;
scanf ( '%s' , név ) ;
printf ( 'A megadott név: %s.' , név ) ;
Visszatérés 0 ;
}
A fenti program felkéri a felhasználót, hogy írjon be egy nevet, a scanf() függvény segítségével kiolvassa a felhasználótól, és eltárolja a karaktertömb nevében. Ezután a printf() függvényt használja a beírt név kinyomtatására.
Kimenet
Olvasson el egy karakterláncot vagy egy sort a C programozásban
Használhatja a fgets() függvény a karakterláncok beolvasására, mivel a megadott bemeneti adatfolyamból egy szövegsor beolvasására és egy karaktertömbben való tárolására szolgál. Az alábbi kód egy példa egy ilyen esetre:
#includeint fő- ( ) {
char vonal [ ötven ] ;
printf ( 'Írjon be egy szövegsort:' ) ;
fgets ( vonal , mérete ( vonal ) , stdin ) ;
printf ( 'Beírtad: %s' , vonal ) ;
Visszatérés 0 ;
}
A fenti C program a fgets() funkcióval beolvassa a felhasználó által beírt szövegsort a szabványos bemenetről, és egy sor nevű karaktertömbben tárolja. Ezután a printf() függvény segítségével kiírja a beírt szövegsort.
Kimenet
Gyakran használt karakterlánc-függvények
A C programozás stringjei különféle funkciókat támogatnak, amelyek a programokban különböző műveletek végrehajtására használhatók. Az alábbiakban megemlítünk néhány olyan függvényt, amelyet egy karakterlánc támogat C-ben:
A funkció neve | A funkció célja |
strcat(a1,a2); | Az a2 karakterlánc tartalmát hozzáfűzi az a1 karakterlánc végéhez. A művelet után a kapott karakterlánc a1-ben kerül tárolásra. |
strcpy(a1,a2); | Ez a függvény az a2 karakterlánc tartalmát az a1 karakterláncba másolja. A művelet után az a1 az a2 pontos másolatát fogja tartalmazni, beleértve a befejező null karaktert. |
strlen(a1); | Az a1 karakterlánc hosszát adja vissza, azaz a karakterláncban az utolsó befejező vagy null karakter előtt található karakterek teljes számát. |
strchr(a1,ch1); | Ez a függvény a ch1 karakter első előfordulására mozgatja a mutatót az a1 karakterláncban. Ez a függvény null mutatót ad vissza, ha a ch1 nem található az a1 karakterláncban. |
Jegyzet: A C szabványos könyvtárat biztosít
Következtetés
A karakterlánc a C programok lineáris sorozatának gyűjteménye. Minden karakter egy bájtot tárol, és dupla idézőjelek jelzik. C biztosítja a szabványos könyvtárat