Shammer's Philosophy

My private adversaria

文字列の扱い初歩

プログラミングの中で文字列を扱う、というのはある意味では定番。
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だとこうするものらしい。
ユーザーの入力を受け取るようなプログラムの場合は、プログラマがこの終端文字を含めても
問題ないように文字配列のサイズを定義しておく必要がある。
試した限り、プログラマが定義したサイズを超えて入力があっても
エラーになるわけではないようだが、超えた入力は無視されるようだ。