dポイントプレゼントキャンペーン実施中!

前回答えてくださった方々へのお礼

・前回質問した際、質問に答えてくださった方々、皆様のおかげで問題を解く事ができました。本当にありがとうございました。

↓ここから質問です。

「end」と入力されるまで、キーボードから文字列を読み取るプログラムを作成してください。ただし、大文字と小文字が混ざった「EnD」などでも終了するようにしてください。小文字を大文字に変換する「toupper( )関数」を利用してください。また、文字列の比較には「strcmp( )関数」を利用してください。

という問題を解いているのですが、自分でした結果

#include <stdio.h>
#include <ctype.h>
#include <string.h>

int main(void)
{
char str[10]; ←str[10]は適当に値を決めているだけです
int i,ret;
int result;

do {

printf("文字列を入力してください:");
scanf("%s", str);
i = 0;
while (str[i] != ???? )// 文字列の最後かチェック
{
ret = toupper(?); // toupper関数に1つずつ渡す
i++;
}
result = strcmp("END", str);//文字列の比較
if (result == 0)
{
break;//ループを抜ける!
}
} while (1);            // 条件が1の場合は永久ループ

return 0;
}

ここまではできたのですが、どうしても

while (str[i] != ???? )// 文字列の最後かチェック
{
ret = toupper(?); // toupper関数に1つずつ渡す
i++;
}
この部分の「?」と書いている部分がわかりませんでした。
わかる方が居られましたらどうか教えてもらえないでしょうか?

あと、おかしな部分等がありましたら教えてください。

どうかよろしくお願いします。

A 回答 (1件)

while (str[i] != ???? ) // 文字列の最後かチェック


{
ret = toupper(?); // toupper関数に1つずつ渡す
i++;
}
最後には0が来るのがCの文字列かと。
二番目はstr[i]でしょうけど、retに代入してどう使いたいのでしょう?意図は?
僕ならstr[i]に戻します。
    • good
    • 0
この回答へのお礼

返答ありがとうございます。
str[i]に戻すとうまくいきました。
本当にありがとうございました^^。

お礼日時:2007/08/21 05:38

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