Array af strenge i C

Array af strenge i C

I C-programmering er String en 1-D matrix af tegn og er defineret som en matrix af tegn. Men en række strenge i C er en todimensionel række af tegntyper. Hver streng afsluttes med et nul-tegn ( ). Det er en applikation af et 2d-array.

Syntaks:

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

Her,

    var_navn er navnet på variablen i C. r er det maksimale antal strengværdier, der kan gemmes i en strengmatrix. c er det maksimale antal tegnværdier, der kan gemmes i hver strengmatrix.

Eksempel:

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

Produktion

String array Elements are: Geek Geeks Geekfor 

Nedenfor er repræsentationen af ​​ovenstående program

Hukommelsesrepræsentation af række af strenge

Vi har 3 rækker og 10 kolonner specificeret i vores Array of String, men på grund af forudspecificering er størrelsen af ​​arrayet af strenge pladsforbruget højt. Så for at undgå højt pladsforbrug i vores program kan vi bruge en Array of Pointers i C.

Ugyldige operationer i arrays af strenge

Vi kan ikke direkte ændre eller tildele værdierne til en række strenge i C.

Eksempel:

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

Her er arr[0] = GFG; // Dette vil give en fejl, der siger tildeling til udtryk med en matrixtype.

For at ændre værdier kan vi bruge strcpy()-funktionen i C

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

Array af pointere af strenge

I C kan vi bruge en Array af pointere. I stedet for at have et 2-dimensionelt tegnarray, kan vi have et enkeltdimensionelt array af pointere. Her er pointeren til det første tegn i strengen literal gemt.

Syntaks:

char *arr[] = { 'Geek', 'Geeks', 'Geekfor' }; 
Array af pointere af strenge

Nedenfor er C-programmet til at udskrive en række pointere:

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

Produktion

String array Elements are: Geek Geeks Geekfor