スポンサーリンク

char型で文字列を宣言時に初期化する5つの方法

文字列の初期化方法は、時間が経つとすぐに忘れてしまうんですよね。
いくつか選択肢もあって迷う時もあるので、まとめてみました。

まずは、charのポインタで文字列を宣言して初期化しています。

	char* str1 = "string";

charの配列で初期化しています。
要素数は省略する方法ですね。
	char str2[] = "string";

要素数を指定して、charの配列で初期化しています。
要素数が文字数(終端文字含む)内に収まっていることにも注意が必要です。
	char str3[7] = "string";

charの配列で1文字ずつ初期化しています。
終端文字の入れ忘れに注意が必要ですね。
	char str4[] = {'s', 't', 'r', '\0'};

要素数を指定して、charの配列で1文字ずつ初期化しています。
	char str5[4] = {'s', 't', 'r', '\0'};

スポンサーリンク

サンプルコード

下記がサンプルコードになります。

 $ cat sample.c 
#include <stdio.h>
#include <string.h>

int main(){
	char* str1 = "string";
	printf("%s\n", str1);

	char str2[] = "string";
	printf("%s\n", str2);

	char str3[7] = "string";
	printf("%s\n", str3);
	
	char str4[] = {'s', 't', 'r', '\0'};
	printf("%s\n", str4);

	char str5[4] = {'s', 't', 'r', '\0'};
	printf("%s\n", str5);

	return 0;
}
</string.h></stdio.h>

下記が実行結果になります。
 $ gcc -o sample sample.c
 $ ./sample 
string
string
string
str
str

スポンサーリンク