Pole reťazcov v C

Pole reťazcov v C

V programovaní C je reťazec 1-D pole znakov a je definovaný ako pole znakov. Ale pole reťazcov v C je dvojrozmerné pole typov znakov. Každý reťazec je ukončený znakom null ( ). Ide o aplikáciu 2D poľa.

Syntax:

char variable_name[r] = {list of string}; 

Tu,

    var_name je názov premennej v C. r je maximálny počet hodnôt reťazcov, ktoré možno uložiť do poľa reťazcov. c je maximálny počet hodnôt znakov, ktoré možno uložiť do každého poľa reťazcov.

Prí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ýkon

String array Elements are: Geek Geeks Geekfor 

Nižšie je uvedené zastúpenie vyššie uvedeného programu

Pamäťová reprezentácia poľa reťazcov

V našom Array of String máme špecifikovaných 3 riadky a 10 stĺpcov, ale kvôli preddefinovaniu veľkosti poľa reťazcov je spotreba miesta vysoká. Aby sme sa vyhli vysokej spotrebe miesta v našom programe, môžeme použiť pole ukazovateľov v jazyku C.

Neplatné operácie v poliach reťazcov

Nemôžeme priamo meniť alebo priraďovať hodnoty množstvu reťazcov v C.

Príklad:

 char arr[3][10] = {'Geek', 'Geeks', 'Geekfor'}; 

Tu arr[0] = GFG; // Toto poskytne chybu, ktorá hovorí priradenie k výrazu s typom poľa.

Na zmenu hodnôt môžeme použiť funkciu strcpy() v C

 strcpy(arr[0],'GFG'); // This will copy the value to the arr[0]. 

Pole ukazovateľov reťazcov

V C môžeme použiť pole ukazovateľov. Namiesto dvojrozmerného poľa znakov môžeme mať jednorozmerné pole ukazovateľov. Tu je uložený ukazovateľ na prvý znak reťazcového literálu.

Syntax:

char *arr[] = { 'Geek', 'Geeks', 'Geekfor' }; 
Pole ukazovateľov reťazcov

Nižšie je uvedený program C na tlač poľa ukazovateľov:

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ýkon

String array Elements are: Geek Geeks Geekfor