logo

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:

rovná se Java
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;> }>

>

>

podřetězec řetězec java
Výstup

String array Elements are: Geek Geeks Geekfor>

Níže je uvedena reprezentace výše uvedeného programu

Paměťová reprezentace pole řetězců

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:

C++ gui
char *arr[] = { 'Geek', 'Geeks', 'Geekfor' };>
Pole ukazatelů řetězců

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;> }>

>

jarní bota

>

Výstup

String array Elements are: Geek Geeks Geekfor>