gpt4 book ai didi

在 C 中比较用户输入的字符

转载 作者:太空狗 更新时间:2023-10-29 16:33:07 25 4
gpt4 key购买 nike

以下代码片段来自 C 程序。

用户输入 Y 或 N。

char *answer = '\0';

scanf (" %c", answer);

if (*answer == ('Y' || 'y'))
// do work

我不明白为什么这个 if 语句的计算结果不为真。

我用 printf 检查了 y 或 n 输入,它就在那里,所以我知道我正在获取用户输入。此外,当我将 if 语句的条件替换为 1(使其为真)时,它会正确评估。

最佳答案

我看到两个问题:

指针 answer 是一个 null 指针,您试图在 scanf 中取消引用它,这会导致未定义的行为

这里不需要char 指针。您可以只使用 char 变量作为:

char answer;
scanf(" %c",&answer);

接下来要查看读取的字符是 'y' 还是 'Y' 你应该这样做:

if( answer == 'y' || answer == 'Y') {
// user entered y or Y.
}

如果您真的需要使用字符指针,您可以这样做:

char var;
char *answer = &var; // make answer point to char variable var.
scanf (" %c", answer);
if( *answer == 'y' || *answer == 'Y') {

关于在 C 中比较用户输入的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3911653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com