strcmp java_Strcmp()在“系列”中[重复]

这个问题在这里已有答案:

我想比较一些字符串,但不幸的是我没有找到任何正确的方法来做到这一点 .

背后的想法是要求键盘输入,读取变量,一个符号,如果它是“y”或“n”(显然是“是”或“否”),它执行某些活动 . 如果char的值都不是它们,则再次询问该问题,直到没有按下“y”或“n” . 我不明白如何实现这一点 .

#include

#include

int main()

{

char answer;

answer='a';

while (answer!='n'&&answer!='y')

{

printf("\nQuestion? (y/n) ");

scanf("%c",&answer);

}

return 0;

}

这实际上非常好用,但如果我不按'y'或'n',“while”再次启动,由于我无法理解的原因,“printf”执行的次数比输入 . 因此,如果我们运行此代码并将“asdf”作为输入(四个符号)应用,则“while”中的“printf”将显示五(四加一)次 . 结果是:

Question? (y/n)

Question? (y/n)

Question? (y/n)

Question? (y/n)

Question? (y/n)

其他一切在我的代码中工作得非常好,但是这......显然,这不是最好的方法 . 我也试过“strcmp()”:

#include

#include

int main()

{

char answer='a';

while (strcmp(answer,'n')!=0&&strcmp(answer,'y')!=0)

{

printf("Question?");

scanf("%c",&answer);

}

return 0;

}

我不知道为什么,但程序甚至没有开始 . 很明显,我没有正确实施“strcmp”,我不明白有什么不对 .

任何想法,我该怎么做,所以我可以避免在“while”中多次执行“printf”或者让“strcmp”以我要求的方式工作?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值