c - 我应该怎么做才能读取c中的字符串?

标签 c string

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/

相关文章:

c - fclose 不可能的正确错误处理(根据联机帮助页)?

Python 在交互模式下不驻留字符串?

c++ - 在字符串 2 中不可靠地找到字符串 1

python - 删除字符串的文本

c++ - 静态链接库的动态 DLL

c - 添加节点时如何重置指向头节点的指针?

c - C语言中的数组

python - C 中的数组恶作剧

c++ - C++中的字符串分配

linux - 如何附加冒号零,:0 onto the end of an IP address string?