私は厄介な(標準ではあるが)問題の厄介な解決策だと思ったものを思いついた:与えられたユーザー入力に対して、単語の文字を逆にする
例えば:
これは標準テストです
になります
sihT si a dradnats tset
ではなく
tset dradnats a si sihT
問題の核心はこのコードです
while (!iscntrl(user_input[x])) // quit when new line is read
{
restart:
x++;
puts("first level test");
if (user_input[x]==' ')
{
puts("second level test");
for (i=x; user_input[i]!=' '; --i)
{
reverse_words[k]=user_input[i];
k++;
puts("third level test");
goto restart;
}
}
}
(はい、私は知っています、そこにはgotoがあります:/)
ただし、ループの3番目のレベルには触れません。
(i=x; user_input[i]!=' '; --i)
おそらく、forループパラメータとして完全に何か問題がありますか?
x
、、、i
およびk
はすべて、最初のループの開始前に整数==0として初期化されます。