如果我使用scanf("%c",&variableName)
方法将某个字符保存到内存中,它会正确保存,我可以使用printf("%c",variableName)仔细检查字符是否已保存。我的问题是,在进行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!");
}
如果我输入字符&#39; a&#39;出现提示时,我的程序将打印出&#34;您输入了&#34; 这让我相信我做对了......
问题是这不适用于我的if语句......即使我在printf&#34; character,&#34;我得到了一个&#39;,它没有注册为&#39; a&#39;在我的if语句中。
我尝试将其更改为if(&character == 'a')
和if(*character == 'a')
,但这些都没有奏效。
这是什么问题? &#39;一个&#39;显然存储在内存中的某个地方,但当我尝试将它用于我的if语句时,它不起作用。
答案 0 :(得分:1)
您将character
变量声明为指向char的指针,而不是char。只需将您的声明更改为:
char character;