C言語では文字列の終端を示すために、文字コード 0 の特別な文字 null文字('\0')を用いる決まりになっていますね。
ここでは、null文字に関するTipsをいくつか挙げたいと思います。
char passwd[9]; 8文字を保存する文字配列なら 8+1文字分必要である。
char str[] = "Hello"; strにはHelloの後ろにnull文字をつけた内容が入る。
printf は '\0' の前までを表示する strlen は '\0' の前までの長さを文字列長として返す strcpy( s, t ) は、t を s に '\0' を含めてコピーする strcat( s, t ) は、t を s の後に '\0' を含めて連結する
char str[] = { 'H', 'e', 'l', 'l', 'o', '\0' };
for( i = 0; str[i] != '\0'; i++ ) { : }
#include <stdio.h> #include <string.h> main() { char name1[24] = "Mickey Mouse"; char name2[24] = "Minnie Mouse"; name1[6] = '\0'; printf( "Name1 : %s\n", name1 ); strcat( name1, " and " ); strcat( name1, name2 ); printf( "Name1 : %s\n", name1 ); }実行すると、結果はどうなるでしょう。予想してください。
(答えは、次回のC言語の Tips で ・・・)
buf1:サイズ 6, 文字列長 5 buf2:サイズ 24, 文字列長 5buf1 は配列サイズを空とし、初期化文字列 Hello を指定したので、Hello と '\0' の分のサイズ6 で領域が取られました。 文字列長は '\0' の前までなので 5 です。