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
