logo

Matrice de șiruri în C

În programarea C String este o matrice 1-D de caractere și este definită ca o matrice de caractere. Dar o matrice de șiruri în C este o matrice bidimensională de tipuri de caractere. Fiecare șir este terminat cu un caracter nul ( ). Este o aplicație a unui tablou 2d.

Sintaxă:

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

Aici,



    var_name este numele variabilei din C. r este numărul maxim de valori de șir care pot fi stocate într-o matrice de șiruri. c este numărul maxim de valori de caractere care pot fi stocate în fiecare matrice de șiruri.

Exemplu:

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

>

>

starea git
Ieșire

String array Elements are: Geek Geeks Geekfor>

Mai jos este reprezentarea programului de mai sus

Reprezentarea în memorie a matricei de șiruri

Avem 3 rânduri și 10 coloane specificate în Array of String, dar din cauza prespecificării, dimensiunea matricei de șiruri, consumul de spațiu este mare. Deci, pentru a evita un consum mare de spațiu în programul nostru, putem folosi o matrice de pointeri în C.

Operații nevalide în matrice de șiruri

Nu putem schimba direct sau aloca valorile unei matrice de șiruri în C.

Exemplu:

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

Aici, arr[0] = GFG; // Aceasta va da o eroare care spune atribuirea expresiei cu un tip de matrice.

Pentru a schimba valorile putem folosi funcția strcpy() în C

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

Matrice de pointeri de șiruri

În C putem folosi un Array de pointeri. În loc să avem o matrice de caractere bidimensională, putem avea o matrice unidimensională de Pointeri. Aici este stocat indicatorul către primul caracter al literalului șir.

Sintaxă:

ce este mac os
char *arr[] = { 'Geek', 'Geeks', 'Geekfor' };>
Matrice de pointeri de șiruri

Mai jos este programul C pentru a imprima o serie de pointeri:

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

>

plutește la sfoară

>

Ieșire

String array Elements are: Geek Geeks Geekfor>