V tomto článku si vysvetlíme, čo sú reťazce v C, ako sa deklarujú a ako ich implementovať do programovania v C.
Čo sú reťazce v programovaní C?
Reťazce sú jednorozmerné polia ukončené null \0 charakter. Používajú sa na ukladanie znakov a textov a každý znak v reťazci zaberá jeden bajt pamäte. Na rozdiel od iných programovacích jazykov C nemá názov typu údajov ako reťazec, namiesto toho ukladáte údaje do typ znaku.
Ako deklarovať reťazce v programovaní C?
V programovaní C môžete deklarovať reťazec pomocou nasledujúcich metód:
Môžete priradiť reťazec s preddefinovanou veľkosťou. Napríklad reťazec s limitnou veľkosťou 8 znakov by mal byť deklarovaný ako:
char test [ 8 ] = 'vitajte' ;
Ďalšou metódou na priradenie reťazca v C je bez definovania veľkosti poľa:
char test [ ] = 'vitajte' ;
Reťazec môžete priradiť aj pomocou poľa znakov s definovanou veľkosťou:
char test [ 8 ] = { 'IN' , 'To je' , 'l' , 'c' , 'O' , 'm' , 'To je' , ' \0 ' } ;Alebo môžete priradiť reťazec do poľa znakov tak, že ho inicializujete znak po znaku bez definovanej veľkosti:
char test [ ] = { 'IN' , 'To je' , 'l' , 'c' , 'O' , 'm' , 'To je' , ' \0 ' } ;
The nulový znak „\0“ predstavuje koniec reťazca. Ak chcete určiť, kde reťazec končí, je dôležité pridať na koniec každého znaku null.
Pamäťová reprezentácia vyššie uvedeného reťazca bude nasledovná:
Index | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Variabilné | IN | to je | l | c | O | m | to je | \0 |
V C sa nulový znak používa na určenie, kde reťazec končí. Ak nulový znak nie je prítomný, tieto funkcie budú pokračovať v spracovávaní pamäte za koncom reťazca, čo môže viesť k neočakávanému správaniu kódu.
Nasleduje kompletný programovací kód C pre tlač reťazca.
#includeint Hlavná ( ) {
char test [ 8 ] = { 'IN' , 'To je' , 'l' , 'c' , 'O' , 'm' , 'To je' , ' \0 ' } ;
printf ( 'Výstup je: %s \n ' , test ) ;
vrátiť 0 ;
}
Vyššie uvedený program deklaruje test poľa znakov s veľkosťou 8 a inicializuje ho znakmi „W“, „e“, „l“, „c“, „o“, „m“, „e“ , a „\0“ . Potom použije printf() funkcia na vytlačenie reťazca uloženého v teste.
Výkon
Prevezmite vstup reťazca od používateľa v programovaní C
Môžete tiež prevziať vstupný reťazec od používateľa pomocou scanf() a na to musíte definovať veľkosť poľa reťazcov. Nasleduje príklad kódu na získanie vstupu od používateľa:
#includeint Hlavná ( )
{
char názov [ 10 ] ;
printf ( 'Zadaj meno:' ) ;
scanf ( '%s' , názov ) ;
printf ( 'Zadaný názov je: %s.' , názov ) ;
vrátiť 0 ;
}
Vyššie uvedený program vyzve používateľa, aby zadal meno, prečíta ho od používateľa pomocou funkcie scanf() a uloží ho do názvu poľa znakov. Potom použije funkciu printf() na vytlačenie zadaného mena.
Výkon
Prečítajte si reťazec alebo riadok textu v programovaní C
Môžete použiť fgets() funkcia na čítanie reťazcov, ako sa používa na čítanie riadku textu zo zadaného vstupného toku a jeho uloženie do poľa znakov. Nižšie napísaný kód je príkladom takéhoto prípadu:
#includeint Hlavná ( ) {
char riadok [ päťdesiat ] ;
printf ( 'Zadajte riadok textu: ' ) ;
fgets ( riadok , veľkosť ( riadok ) , stdin ) ;
printf ( 'Zadali ste: %s' , riadok ) ;
vrátiť 0 ;
}
Vyššie uvedený program C používa fgets() funkcia na čítanie riadku textu zadaného používateľom zo štandardného vstupu a jeho uloženie do poľa znakov s názvom line. Potom pomocou funkcie printf() vytlačí zadaný riadok textu.
Výkon
Bežne používané funkcie reťazca
Reťazce v programovaní C podporujú rôzne funkcie, ktoré možno v programoch použiť na vykonávanie rôznych akcií. Niektoré z funkcií podporovaných reťazcom v C sú uvedené nižšie:
Názov funkcie | Účel funkcie |
strcat(a1,a2); | Pridá obsah reťazca a2 na koniec reťazca a1. Po operácii sa výsledný reťazec uloží do a1. |
strcpy(a1,a2); | Táto funkcia skopíruje obsah reťazca a2 do reťazca a1. Po operácii bude a1 obsahovať presnú kópiu a2 vrátane ukončovacieho nulového znaku. |
strlen(al); | Vráti dĺžku reťazca a1, t. j. celkový počet znakov nachádzajúcich sa v reťazci pred posledným ukončovacím alebo nulovým znakom. |
strchr(al,ch1); | Táto funkcia presunie ukazovateľ na prvý výskyt znaku ch1 v reťazci a1. Táto funkcia vráti nulový ukazovateľ, ak sa v reťazci a1 nenájde ch1. |
Poznámka: C poskytuje štandardnú knižnicu tzv
Záver
Reťazec je zbierka lineárnej postupnosti v programoch C. Každý znak obsahuje jeden bajt a je reprezentovaný dvojitými úvodzovkami. C poskytuje štandardnú knižnicu