使用scanf时给出的标准字不能正确打印
我试图 printf 一个简单的字符串,但我不能。
#include <stdio.h>
int main(){
char *word;
scanf("%s", &word);
printf("%sn", word);
return 0;
}
当我插入这个词时,我的代码会中断。
它只是停止程序执行,但没有给我任何错误。
我究竟做错了什么?
回答
问题1:你需要为你的单词分配空间。
问题 2:您的 scanf() 语法对于字符数组不正确。
问题 3: scanf("%s", ...) 本身容易受到缓冲区溢出的影响。
建议的替代方案:
#include <stdio.h>
#define MAXLEN 80
int main(){
char word[MAXLEN];
fgets(word, MAXLEN, stdin);
printf("%s", word);
return 0;
}