Co jsou řetězce v programování C?

Co Jsou Retezce V Programovani C



V programovacím jazyce C, struny představují způsob, jak reprezentovat skupinu postav. Jsou nezbytné, protože umožňují programátorům pracovat s textovými daty v jejich programech. Na rozdíl od některých jiných programovacích jazyků nemá C vestavěný datový typ řetězce. Místo toho jsou řetězce vytvořeny pomocí znakových polí.

V tomto článku si vysvětlíme, co jsou řetězce v C, jak se deklarují a jak je implementovat do programování v C.

Co jsou řetězce v programování C?

Řetězce jsou jednorozměrná pole zakončená null \0 charakter. Používají se pro ukládání znaků a textů a každý znak v řetězci zabírá jeden bajt paměti. Na rozdíl od jiných programovacích jazyků C nemá název datového typu jako řetězec, místo toho data ukládáte do typ znaku.







Jak deklarovat řetězce v programování C?

V programování C můžete deklarovat řetězec pomocí následujících metod:



Můžete přiřadit řetězec s předdefinovanou velikostí. Například řetězec s limitní velikostí 8 znaků by měl být deklarován jako:



char test [ 8 ] = 'Vítejte' ;

Další metodou pro přiřazení řetězce v C je bez definování velikosti pole:





char test [ ] = 'Vítejte' ;

Můžete také přiřadit řetězec pomocí pole znaků s definovanou velikostí:

char test [ 8 ] = { 'V' , 'To je' , 'l' , 'C' , 'Ó' , 'm' , 'To je' , ' \0 ' } ;

Nebo můžete přiřadit řetězec k poli znaků tak, že jej inicializujete znak po znaku bez definované velikosti:



char test [ ] = { 'V' , 'To je' , 'l' , 'C' , 'Ó' , 'm' , 'To je' , ' \0 ' } ;

The prázdný znak „\0“ představuje konec řetězce. Chcete-li určit, kde řetězec končí, je důležité přidat na konec každého znaku null.

Paměťová reprezentace výše uvedeného řetězce bude následující:

Index 0 1 2 3 4 5 6 7
Variabilní V to je l C Ó m to je \0

V C se znak null používá k určení, kde řetězec končí. Pokud znak null není přítomen, budou tyto funkce pokračovat ve zpracování paměti za koncem řetězce, což může vést k neočekávanému chování kódu.

Následuje kompletní programovací kód C pro tisk řetězce.

#include

int hlavní ( ) {

char test [ 8 ] = { 'V' , 'To je' , 'l' , 'C' , 'Ó' , 'm' , 'To je' , ' \0 ' } ;

printf ( 'Výstup je: %s \n ' , test ) ;

vrátit se 0 ;

}

Výše uvedený program deklaruje test pole znaků o velikosti 8 a inicializuje jej znaky 'Vítejte' , a „\0“ . Poté používá printf() funkce pro vytištění řetězce uloženého v testu.

Výstup

Převezměte vstup řetězce od uživatele v programování C

Můžete také převzít vstupní řetězec od uživatele pomocí scanf() a pro to musíte definovat velikost pole řetězců. Níže je uveden příklad kódu pro převzetí vstupu od uživatele:

#include

int hlavní ( )

{

char název [ 10 ] ;

printf ( 'Napište jméno:' ) ;

scanf ( '%s' , název ) ;

printf ( 'Zadané jméno je: %s.' , název ) ;

vrátit se 0 ;

}

Výše uvedený program vyzve uživatele k zadání jména, přečte jej od uživatele pomocí funkce scanf() a uloží jej do názvu pole znaků. Poté pomocí funkce printf() vytiskne zadané jméno.

Výstup

Přečtěte si řetězec nebo řádek textu v programování C

Můžete použít fgets() funkce pro čtení řetězců, jak se používá ke čtení řádku textu ze zadaného vstupního proudu a jeho uložení do pole znaků. Níže napsaný kód je příkladem takového případu:

#include

int hlavní ( ) {

char čára [ padesáti ] ;

printf ( 'Zadejte řádek textu: ' ) ;

fgets ( čára , velikost ( čára ) , stdin ) ;

printf ( 'Zadali jste: %s' , čára ) ;

vrátit se 0 ;

}

Výše uvedený program C používá fgets() funkce pro přečtení řádku textu zadaného uživatelem ze standardního vstupu a jeho uložení do pole znaků s názvem řádek. Poté pomocí funkce printf() vytiskne zadaný řádek textu.

Výstup

Běžně používané funkce řetězce

Řetězce v programování C podporují různé funkce, které lze v programech použít k provádění různých akcí. Některé z funkcí podporovaných řetězcem v C jsou uvedeny níže:

Název funkce Účel funkce
strcat(al,a2); Připojí obsah řetězce a2 na konec řetězce a1. Po operaci bude výsledný řetězec uložen do a1.
strcpy(a1,a2); Tato funkce zkopíruje obsah řetězce a2 do řetězce a1. Po operaci bude a1 obsahovat přesnou kopii a2, včetně ukončovacího znaku null.
strlen(al); Vrátí délku řetězce a1, tj. celkový počet znaků umístěných v řetězci před posledním ukončovacím nebo prázdným znakem.
strchr(al,ch1); Tato funkce přesune ukazatel na první výskyt znaku ch1 v řetězci a1. Tato funkce vrací nulový ukazatel, pokud ch1 není nalezen v řetězci a1.

Poznámka: C poskytuje standardní knihovnu tzv <řetězec.h> který poskytuje různé funkce pro práci s řetězci v C. Tyto funkce zahrnují operace jako kopírování řetězců, zřetězení řetězců a další.

Závěr

Řetězec je sbírka lineární sekvence v programech C. Každý znak obsahuje jeden bajt a je reprezentován dvojitými uvozovkami. C poskytuje standardní knihovnu <řetězec.h> a můžete snadno provádět složité úkoly pomocí řetězcových funkcí. Ve výše uvedené příručce jsme probrali různé způsoby deklarace řetězce a inicializace. Předávání řetězce do funkce jsme také demonstrovali na příkladu kódu.