文字列の扱い初歩
プログラミングの中で文字列を扱う、というのはある意味では定番。
Javaの場合は、java.lang.Stringというクラスがあり、文字列はこのクラスが中心になる。
内部的には、このクラスはcharの情報を持っていて、これが文字列の実体だった。
Cの場合はどうか。Cでも文字列はcharと同等だ。
宣言も
char string1 = "stringvalue";
とできる。当然配列だから
char string1 = {'s','t','r','i','n','g'};
というようにもできる、、、と思うが、じつはこれでは不完全。
Cの場合は、文字列の最後はNull文字にしなければならないらしく、
char string1[] = {'s','t','r','i','n','g','\0'};
というような感じで、「\0」を追加してやらないといけないようだ。
これは終端文字ということでCだとこうするものらしい。
ユーザーの入力を受け取るようなプログラムの場合は、プログラマがこの終端文字を含めても
問題ないように文字配列のサイズを定義しておく必要がある。
試した限り、プログラマが定義したサイズを超えて入力があっても
エラーになるわけではないようだが、超えた入力は無視されるようだ。