文字列の初期化

こういう風に初期化してもいいんだよ。

#include <stdio.h>
#include <string.h>

int main(int argc, char *argv[])
{
	char str[] = "hello world";
	printf( "%s, length = %lu\n", str, strlen(str) );
	return 0;
}

実行結果
hello world, length = 11

簡単でしょ?
コンパイラさんは、連続した入れ物に自動的に格納してくれるの。
文字数も、こうやって取得できちゃうよ。
でもね、文字数と入れ物の数は別なんだよ。
連続した入れ物の意味は、あとで説明するけど、
入れ物の数は今、覚えてね。
連続した入れ物に文字を1個ずつ入れると、
どこが最後尾なのか分からないの。
それだと、コンパイラさんが困っちゃうのね。
そこで、ここで文字が終わりですよ、ってところで、
入れ物に’\0’を格納するの。
今回は、自動的にそれをやってくれてるから、
入れ物自体は12個用意されてるって訳。
だから、今後は文字列を格納するときは、
入れ物を文字数+1用意してね。

Leave a Comment