int main(){
char s[]="hi ";
char t[55];
fgets(t,55,stdin);
strcat(s,t);
puts(s);
}
我想连接字符串 s
和输入的字符串 t
,但我没有得到任何输出。我尝试使用 gets
读取 string
但编译器说“使用 gets 可能很危险”。我该怎么办?
最佳答案
strcat(s,t);
正在溢出目标内存缓冲区 s
,因为它只够容纳 4 个字符(其中一个被NUL-终止符)。
因此,您的程序的行为是未定义。
使 s
的大小足以容纳其初始内容加上 t
中可能的最大字符串。
关于c - 我应该怎么做才能读取c中的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41823394/