Tablica ciągów w C

Tablica ciągów w C

W programowaniu C ciąg znaków jest tablicą 1-D znaków i jest definiowany jako tablica znaków. Ale tablica ciągów w C jest dwuwymiarową tablicą typów znaków. Każdy ciąg znaków jest zakończony znakiem null ( ). Jest to zastosowanie tablicy 2D.

Składnia:

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

Tutaj,

    nazwa_zmiennej to nazwa zmiennej w C. r to maksymalna liczba wartości łańcuchowych, które można przechowywać w tablicy ciągów. c to maksymalna liczba wartości znaków, które można przechowywać w każdej tablicy ciągów.

Przykład:

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

Wyjście

String array Elements are: Geek Geeks Geekfor 

Poniżej znajduje się reprezentacja powyższego programu

Reprezentacja pamięci tablicy ciągów

Mamy 3 wiersze i 10 kolumn określone w naszej Array of String, ale ze względu na wstępne określenie rozmiaru tablicy ciągów, zużycie miejsca jest wysokie. Aby więc uniknąć dużego zużycia miejsca w naszym programie, możemy użyć tablicy wskaźników w C.

Nieprawidłowe operacje na tablicach ciągów

Nie możemy bezpośrednio zmieniać ani przypisywać wartości do tablicy ciągów w C.

Przykład:

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

Tutaj arr[0] = GFG; // Spowoduje to błąd informujący o przypisaniu do wyrażenia o typie tablicy.

Aby zmienić wartości, możemy użyć funkcji strcpy() w C

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

Tablica wskaźników ciągów

W C możemy używać tablicy wskaźników. Zamiast dwuwymiarowej tablicy znaków, możemy mieć jednowymiarową tablicę wskaźników. Tutaj przechowywany jest wskaźnik do pierwszego znaku literału ciągu.

Składnia:

char *arr[] = { 'Geek', 'Geeks', 'Geekfor' }; 
Tablica wskaźników ciągów

Poniżej znajduje się program w C, który wypisuje tablicę wskaźników:

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

Wyjście

String array Elements are: Geek Geeks Geekfor