スポンサーリンク

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

スポンサーリンク