Čo sú reťazce v programovaní C?

Co Su Retazce V Programovani C



V programovacom jazyku C, struny predstavujú spôsob, ako reprezentovať skupinu znakov. Sú nevyhnutné, pretože umožňujú programátorom pracovať s textovými údajmi v ich programoch. Na rozdiel od niektorých iných programovacích jazykov, C nemá vstavaný reťazcový dátový typ. Namiesto toho sa reťazce vytvárajú pomocou polí znakov.

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.

#include

int 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:

#include

int 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:

#include

int 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 ktorý poskytuje rôzne funkcie pre prácu s reťazcami v C. Tieto funkcie zahŕňajú operácie ako kopírovanie reťazcov, zreťazenie reťazcov a ďalšie.

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 a pomocou reťazcových funkcií môžete jednoducho vykonávať zložité úlohy. Vo vyššie uvedenej príručke sme diskutovali o rôznych spôsoboch deklarácie reťazca a inicializácie. Prechod reťazca do funkcie sme demonštrovali aj na príklade kódu.