我会尽量简短地说明我的问题。 虽然我是一个初学者程序员,但我对自己的问题感到很抱歉。
我有一个字符字符串。 我想使用scanf为这个字符串赋值。 这个值甚至可以是一个单独的数字(但我也希望这个数字作为一个字符)。
所以我写了这段代码:
char string[20];
scanf("%s", string);
//LETS ASSUME WE ONLY WRITE THE NUMBER 1 IN THE STRING
if(string=='1')
printf("You have entered a single number: 1");
// IF I WOULD RUN THIS PROGRAM THE PRINTF PART WOULD NOT HAPPEN. WHY?
这段代码只是一个示例。
在我的程序中,我会使用IF来做比简单的printf更复杂的事情。
然而,使用这段代码,如果我输入字符串“1”,然后按回车键,由于某种原因,我在IF语句中写的内容不会发生。
有人能给我解释一下应该如何做才能让它工作吗?我应该如何编写IF部分呢?
scanf()
可以存储多少个字符到string
中,以避免潜在的缓冲区溢出:scanf("%19s", string);
- chqrlie