Niz nizov v C

Niz nizov v C

V programiranju C je niz 1-D niz znakov in je definiran kot niz znakov. Toda niz nizov v C je dvodimenzionalni niz vrst znakov. Vsak niz se konča z ničelnim znakom ( ). Je aplikacija 2d niza.

Sintaksa:

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

tukaj,

    var_name je ime spremenljivke v C. r je največje število vrednosti niza, ki jih je mogoče shraniti v matriko nizov. c je največje število vrednosti znakov, ki jih je mogoče shraniti v posamezno matriko nizov.

primer:

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

Izhod

String array Elements are: Geek Geeks Geekfor 

Spodaj je predstavitev zgornjega programa

Spominska predstavitev matrike nizov

V naši matriki nizov imamo določene 3 vrstice in 10 stolpcev, vendar je poraba prostora velika zaradi vnaprejšnjega določanja velikosti matrike nizov. Torej, da bi se izognili veliki porabi prostora v našem programu, lahko uporabimo niz kazalcev v C.

Neveljavne operacije v nizih nizov

Ne moremo neposredno spremeniti ali dodeliti vrednosti nizu nizov v C.

primer:

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

Tukaj je arr[0] = GFG; // To bo dalo napako, ki pravi dodelitev izrazu z vrsto polja.

Za spreminjanje vrednosti lahko uporabimo funkcijo strcpy() v C

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

Niz kazalcev nizov

V C lahko uporabimo niz kazalcev. Namesto 2-dimenzionalne matrike znakov imamo lahko enodimenzionalno matriko kazalcev. Tukaj je shranjen kazalec na prvi znak dobesednega niza.

Sintaksa:

char *arr[] = { 'Geek', 'Geeks', 'Geekfor' }; 
Niz kazalcev nizov

Spodaj je program C za tiskanje niza kazalcev:

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

Izhod

String array Elements are: Geek Geeks Geekfor