アプリ版:「スタンプのみでお礼する」機能のリリースについて

char string[100];
int c, i=0;
while( (c=getchar()) != EOF ){
string[i] = c;
i++;
}
string[i] = ‘\0’; <<<<<<<これはなぜ必要なんでしょうか??
printf(“%s\n”, string);

A 回答 (2件)

>string[i] = ‘\0’; <<<<<<<これはなぜ必要なんでしょうか??


理由:
直後の printf(“%s\n”, string); の中の、フォーマット指定子 %S で使っているから

%S は  「‘\0’の手前までを文字列として出力する」 という意味ですよ
    • good
    • 0

たぶんC言語・・・ですよね。


Cはあんまりやったことないので詳しくはないのですが。
\0はヌル文字というもので、ポインタNULLとは別物で、文字(数字の0)として扱われます。
これはchar型の配列の最後に代入し、終端であることを示すものです。

この処理後、今度は配列から文字を取り出すなどの際のループで

while (string[i] != '\0')
/* string[i]がヌル文字"\0"でない間繰り返す */
みたいな使い方ができます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!