2301_80003199 2023-12-02 12:30 采纳率: 60%
浏览 2
已结题

不知道咋不能输出对,就是想用strcat函数

img


快帮忙思考一下strcat函数为啥我用错了呀,看看我那个地方有问题,看一下啰

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-12-02 14:09
    关注

    【以下回答由 GPT 生成】

    问题所在: 问题在于使用gets()函数来获取输入字符串,这是不安全和不推荐的做法。gets()函数无法判断输入的字符串长度,容易导致溢出缓冲区。

    解决方法: 使用安全的输入函数fgets()来替换gets()函数,并对输入的字符串进行处理。

    修改后的代码如下:

    #include<stdio.h>
    #include<string.h>
    
    int main()
    {
        char s1[10];
        char s2[10];
    
        printf("请输入字符串s1: ");
        fgets(s1, sizeof(s1), stdin);
        s1[strcspn(s1, "\n")] = '\0'; //去掉fgets()函数自动添加的换行符
    
        printf("请输入字符串s2: ");
        fgets(s2, sizeof(s2), stdin);
        s2[strcspn(s2, "\n")] = '\0'; //去掉fgets()函数自动添加的换行符
    
        strcat(s1, s2);
    
        printf("连接后的字符串为: %s\n", s1);
    
        return 0;
    }
    

    这样修改之后,可以正确地将两个字符串连接起来并输出。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月10日
  • 已采纳回答 12月2日
  • 创建了问题 12月2日

悬赏问题

  • ¥15 如何入门学习c语言,单片机
  • ¥15 idea 编辑语言的选择
  • ¥15 Windows下部署Asmjit
  • ¥15 请问双层规划模型的上下层目标函数不一致,是如何保证迭代收敛性的
  • ¥15 微信小程序 前端页面内容搜索
  • ¥15 cpu是如何判断当前指令已经执行完毕,然后去执行下条指令的
  • ¥15 安装visual studio2022时visualstudiosetup启动不了,闪退。问题代号0x0和0x1389
  • ¥30 java spring boot2.5.3版本websocket连不上
  • ¥15 angular js调外部链接查看pdf
  • ¥15 openFOAM DPMFoam