Pole řetězců v C
V programování C je řetězec 1-D pole znaků a je definován jako pole znaků. Ale pole řetězců v C je dvourozměrné pole typů znaků. Každý řetězec je ukončen znakem null ( ). Jedná se o aplikaci 2D pole.
Syntax:
char variable_name[r] = {list of string}; Tady,
- var_name je název proměnné v C. r je maximální počet hodnot řetězců, které lze uložit do pole řetězců. c je maximální počet hodnot znaků, které lze uložit do každého pole řetězců.
Příklad:
C
// C Program to print Array> // of strings> #include> // Driver code> int> main()> {> > char> arr[3][10] = {> 'Geek'> ,> > 'Geeks'> ,> 'Geekfor'> };> > printf> (> 'String array Elements are:
'> );> > > for> (> int> i = 0; i <3; i++)> > {> > printf> (> '%s
'> , arr[i]);> > }> > return> 0;> }> |
Výstup
String array Elements are: Geek Geeks Geekfor
Níže je uvedena reprezentace výše uvedeného programu
V našem Array of String máme specifikovaných 3 řádky a 10 sloupců, ale kvůli předspecifikaci je velikost pole řetězců velká spotřeba místa. Abychom se vyhnuli vysoké spotřebě místa v našem programu, můžeme použít Array of Pointers v C.
Neplatné operace v polích řetězců
Nemůžeme přímo změnit nebo přiřadit hodnoty k poli řetězců v C.
Příklad:
char arr[3][10] = {'Geek', 'Geeks', 'Geekfor'}; Zde arr[0] = GFG; // Tím se zobrazí chyba, která říká přiřazení výrazu s typem pole.
Ke změně hodnot můžeme použít funkci strcpy() v C
strcpy(arr[0],'GFG'); // This will copy the value to the arr[0].
Pole ukazatelů řetězců
V C můžeme použít pole ukazatelů. Namísto 2-dimenzionálního pole znaků můžeme mít jednorozměrné pole ukazatelů. Zde je uložen ukazatel na první znak řetězcového literálu.
Syntax:
char *arr[] = { 'Geek', 'Geeks', 'Geekfor' };
Níže je uveden program C pro tisk pole ukazatelů:
C
// C Program to print Array> // of Pointers> #include> // Driver code> int> main()> {> > char> *arr[] = {> 'Geek'> ,> 'Geeks'> ,> 'Geekfor'> };> > printf> (> 'String array Elements are:
'> );> > > for> (> int> i = 0; i <3; i++)> > {> > printf> (> '%s
'> , arr[i]);> > }> > return> 0;> }> |
Výstup
String array Elements are: Geek Geeks Geekfor