我不明白为什么我运行这个小程序时屏幕上没有显示任何内容? while循环是否开始了?
#include <stdio.h>
#include <string.h>
int main()
{
char word[20];
char TryAgain[20] = "y";
int WordLength = 0;
while (strcmp(TryAgain, "y"))
{
printf("\t\t\t Word \n\n");
printf("What is your word, bird?\n");
scanf("%s", word);
getchar();
WordLength = strlen(word);
printf("Result: ");
for (int i = 0; i < WordLength; ++i)
{
printf("%c*", word[i]);
}
printf("\nWould you like to try another word? [y/n]\n");
scanf("%s", TryAgain);
}
getchar();
return 0;
}
答案 0 :(得分:5)
strcmp
的参数相同,则返回0,因此在第一次迭代时,while循环检查while(0)
。 0在布尔检查中等效于false
,因此跳过while循环。试试while(!strcmp(TryAgain, "y"))
。
答案 1 :(得分:0)
我更喜欢将其更改为do-while
do {
printf("\nWould you like to try another word? [y/n]\n");
scanf("%s", TryAgain);
} while (TryAgain=="y" || TryAgain=="Y");
TryAgain必须是布尔值。 见你