Array av strängar i C

Array av strängar i C

I C-programmering är String en 1D-array av tecken och definieras som en array av tecken. Men en array av strängar i C är en tvådimensionell array av teckentyper. Varje sträng avslutas med ett nolltecken ( ). Det är en tillämpning av en 2d-array.

Syntax:

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

Här,

    var_name är namnet på variabeln i C. r är det maximala antalet strängvärden som kan lagras i en strängarray. c är det maximala antalet teckenvärden som kan lagras i varje strängarray.

Exempel:

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 

Nedan är representationen av ovanstående program

Minnesrepresentation av Array of Strings

Vi har 3 rader och 10 kolumner specificerade i vår Array of String, men på grund av förspecificering är storleken på arrayen av strängar utrymmesförbrukningen hög. Så för att undvika hög utrymmesförbrukning i vårt program kan vi använda en Array of Pointers i C.

Ogiltiga operationer i strängar

Vi kan inte direkt ändra eller tilldela värdena till en array av strängar i C.

Exempel:

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

Här är arr[0] = GFG; // Detta kommer att ge ett fel som säger tilldelning till uttryck med en array-typ.

För att ändra värden kan vi använda strcpy()-funktionen i C

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

Array av pekare av strängar

I C kan vi använda en Array av pekare. Istället för att ha en 2-dimensionell teckenuppsättning kan vi ha en endimensionell uppsättning av pekare. Här lagras pekaren till det första tecknet i strängen.

Syntax:

char *arr[] = { 'Geek', 'Geeks', 'Geekfor' }; 
Array av pekare av strängar

Nedan är C-programmet för att skriva ut en rad pekare:

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