電子書籍の厳選無料作品が豊富!

getsを使って文字を入力し、while文で一文字ずつ
表示させるプログラムをつくりたいのですが、
上手く動作しません。

間違っている点を指摘頂けないでしょうか。

宜しくお願いします。

char c[11];
int i;

printf("文字列を入力してください(10文字以内)\n-->");

gets(c);

while(i=0;c[i]=='\0';i++){
printf("%c\n",c[i]);
}

A 回答 (4件)

これでやったら出来ました。


-----------------------------------
void main(){
char c[11];
int i;

printf("文字列を入力してください(10文字以内)\n-->");

gets(c);

for(i=0;c[i]!='\0';i++){
printf("%c\n",c[i]);
}
}
---------------------------------------------
WhileをForにしました。
Whileでやるのであれば

while(c[i]!='\0')

ですね。
    • good
    • 0
この回答へのお礼

ありがとうございました。

初歩的なミスでした。
本当のケアレスミスなので恥ずかしいです(^^;)
以後気をつけます。

お礼日時:2004/04/08 10:36

while文を使うのが命題なのでしょうね。



char c[11];
int i;

printf("文字列を入力してください(10文字以内)\n-->");

gets(c);

i=0;

while(c[i] != '\0') {
printf("%c\n",c[i]);
i++;
}
    • good
    • 0
この回答へのお礼

ありがとうございました。
while文バージョンもこれで身につきました。
ケアレスミスなので恥ずかしいです。
気をつけます。

お礼日時:2004/04/08 10:42

みなさんのおっしゃるとおり、while文の使い方が間違っています。



http://www1.cts.ne.jp/~clab/hsample/Flow/Flow03. …

正しくはfor文です。

http://www1.cts.ne.jp/~clab/hsample/Flow/Flow01. …


ちなみに、gets()でなく、fgets()を使ったほうがいいですよ。

http://kitaj.at.infoseek.co.jp/

参考URL:http://www1.cts.ne.jp/~clab/hsample/Flow/Flow03.html,http://www1.cts.ne.jp/~clab/hsample/Flow/Flow01. …
    • good
    • 0
この回答へのお礼

ありがとうございました。
紹介いただいたサイトの内容も確認しました。

お礼日時:2004/04/08 10:40

(1)この場合、使うべきなのはwhileではなくてforです。



(2)for(i=0;c[i]=='\0';i++)
のまん中の条件は、
c[i]=='\0'
ではなくて
c[i]!='\0'
です。(条件が成り立っている間ループが回る)
    • good
    • 0
この回答へのお礼

ありがとうございました。
二点ともケアレスミスです。

以後気をつけます。

お礼日時:2004/04/08 10:39

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