如果我使用 scanf("%c",&variableName)
方法将某个字符保存到内存中,它会正确保存,我可以使用 printf("%c “,变量名称)。我的问题是在执行 if 语句时我不知道如何正确访问这段数据。
没有进一步的告别,这是我的小测试程序:
#include <stdio.h>
int main()
{
char *character;
printf("Please enter a character: ");
scanf("%c",&character);
printf("\nYou entered %c",character);
if (character == 'a')
printf("Yay!");
else
printf("Noo!");
}
如果我在提示时输入字符“a”,我的程序将打印出“You entered a” 这让我相信我做对了......
问题是这不适用于我的 if 语句...即使当我打印“字符”时得到“a”,它在我的 if 语句中也没有注册为“a”。
我尝试将其更改为 if(&character == 'a')
和 if(*character == 'a')
,但这些都不起作用。
这里有什么问题? 'a' 显然存储在内存中的某个位置,但是当我尝试将它用于我的 if 语句时它不起作用。
最佳答案
您将 character
变量声明为指向 char 的指针,而不是 char。只需将您的声明更改为:
char character;
关于c - 我用scanf获取输入,我用printf检查输入....然后我去用的时候输入不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25859492/