快帮忙思考一下strcat函数为啥我用错了呀,看看我那个地方有问题,看一下啰
2条回答 默认 最新
关注
【以下回答由 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; }
这样修改之后,可以正确地将两个字符串连接起来并输出。
【相关推荐】
- 你看下这篇博客吧, 应该有用👉 :不用strcat函数自己编写一个链接函数
- 除此之外, 这篇博客: 编写函数,模拟实现strcat中的 编写函数,模拟实现strcat 部分也许能够解决你的问题。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥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