スポンサーリンク
char型の配列で文字列を宣言時に初期化する5つの方法
文字列の初期化方法を先日記事にしました。
参考:[c言語]char型で文字列を宣言時に初期化する5つの方法
今回は配列で宣言して初期化する場合です。
まずは、charのポインタを配列で宣言して初期化しています。
char* str1[] = {"str1", "str2"};
配列の要素数を省略した書き方です。
char str2[][5] = {"str1", "str2"};
先頭の要素の文字列を1文字ずつ定義しています。
終端文字に注意が必要ですね。
char str3[][5] = {{'s', 't', 'r', '1', '\0'}, "str2"};
文字列の文字数と、配列の要素数を指定して初期化しています。
char str4[2][5] = {{'s', 't', 'r', '1', '\0'}, "str2"};
スポンサーリンク
サンプルコード
下記がサンプルコードになります。
$ cat sample.c #include <stdio.h> #include <string.h> int main(){ int i; char* str1[] = {"str1", "str2"}; for(i = 0; i < 2; i++){ printf("%s\n", str1[i]); } char str2[][5] = {"str1", "str2"}; for(i = 0; i < 2; i++){ printf("%s\n", str2[i]); } char str3[][5] = {{'s', 't', 'r', '1', '\0'}, "str2"}; for(i = 0; i < 2; i++){ printf("%s\n", str2[i]); } char str4[2][5] = {{'s', 't', 'r', '1', '\0'}, "str2"}; for(i = 0; i < 2; i++){ printf("%s\n", str2[i]); } return 0; } </string.h></stdio.h>
下記が実行結果になります。
$ gcc -o sample sample.c $ ./sample str1 str2 str1 str2 str1 str2 str1 str2
スポンサーリンク