C の文字列配列

C の文字列配列

C プログラミングでは、文字列は文字の 1 次元配列であり、文字の配列として定義されます。ただし、C の文字列の配列は文字型の 2 次元配列です。各文字列はヌル文字 ( ) で終了します。 2次元配列の応用です。

構文:

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

ここ、

    var_name は、C の変数の名前です。r は、文字列配列に格納できる文字列値の最大数です。 c は、各文字列配列に格納できる文字値の最大数です。

例:

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

出力

String array Elements are: Geek Geeks Geekfor 

以下は上記のプログラムの表現です

文字列配列のメモリ表現

文字列の配列には 3 行 10 列が指定されていますが、文字列の配列のサイズを事前に指定しているため、スペースの消費量が多くなります。したがって、プログラムでの大量のスペース消費を避けるために、C でポインターの配列を使用できます。

文字列配列での無効な操作

C では、値を直接変更したり、文字列の配列に代入したりすることはできません。

例:

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

ここで、arr[0] = GFG; // これにより、配列型の式への代入を示すエラーが発生します。

値を変更するには、C の strcpy() 関数を使用します。

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

文字列のポインタの配列

C では、ポインターの配列を使用できます。 2 次元の文字配列の代わりに、ポインタの 1 次元配列を使用できます。ここには文字列リテラルの最初の文字へのポインタが格納されます。

構文:

char *arr[] = { 'Geek', 'Geeks', 'Geekfor' }; 
文字列のポインタの配列

以下は、ポインターの配列を出力する C プログラムです。

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

出力

String array Elements are: Geek Geeks Geekfor