我不明白为什么在运行此代码后我得到(null):
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char input;
printf("enter string: ");
scanf("s", input);
printf("%s", input);
}
为什么我在scanf之后得到(null)?
答案 0 :(得分:1)
尝试给你一个长度的字符,i.E。炭[25]。 char现在保留一个字符。
答案 1 :(得分:1)
您的答案中的问题是您有一个char变量input
,但它没有使用长度初始化。结果,它打印(NULL)
。要解决此问题,您应将input
的声明更改为:
char input[30];
这样,您可以在input
变量中存储最多30个字符。请注意,我以30为例;你可以在这里使用你选择的任何值。
其次,行:
scanf("s", input);
无效;它应该是:
scanf("%s", input);
因为%s
是字符串后面给出的变量的占位符;这是input
。 %s
指的是字符串占位符或char []数据类型s是正确的语法。
**顺便说一句,既然你想把整个句子作为输入阅读,那么你应该知道你的代码只能用于接受输入,直到第一个单词和下一个单词之间的空格,因为scanf()
不读空间。要了解更多使用字符串的内容,请参阅以下链接:C Programming Strings