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.
#includeint 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:
#includeint 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:
#includeint 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.