liunx_hello 2019-03-05 16:53 采纳率: 100%
浏览 670
已采纳

自己写strcat()函数是出现段错误,这是为什么呀

自己写strcat()函数是出现段错误,

#include<string.h>
#include<stdio.h>

char *strcat2(char *ret, char *ptr2)
{
        int len;
        char *ptr1 = ret;

//      if(ptr2 == NULL ) return 0 ;
//      len = strlen(ptr1);
//      ptr1  = ptr1+len;


        while(*ptr2 != '\0'){
                *ptr1++ = *ptr2++;      ;
        }
        *ptr1 = '\0';
        //删除前者的 '\0' ,在接入

return ptr1;

}

int main(){

        char *ch="hello";
        char *ch2= "world";
        strcat2(ch,ch2);
        printf("%s\n",ch);
}

  • 写回答

2条回答 默认 最新

  • caitzh 2019-03-05 17:07
    关注

    因为 char *ch="hello"; 这样声明的字符串是常量,是不允许修改的,你声明成数组就可以

    int main(){
    
            char ch[20]="hello";  // 确保长度能够放下拼接后的字符串
            char ch2[10]= "world";
            strcat2(ch,ch2);
            printf("%s\n",ch);
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • CSDN-Ada助手 CSDN-AI 官方账号 2022-10-11 23:52
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 关于网上一个easyx制作的见缝插针小游戏(c++)
  • ¥15 开地址法双散列函数处理碰撞
  • ¥15 想问一下这个是什么情况 虚拟机Linux打不开了
  • ¥15 联通光猫掉注册了怎么重新注册上去
  • ¥15 关于unity开发steamvr程序遇到的问题
  • ¥60 求tc downloader的下载方式
  • ¥15 华为 快捷方式 手电筒 接口
  • ¥15 Qt6.5支不支持Android13开发啊
  • ¥20 网络只能跑一半,应该如何设置
  • ¥20 Python调用百度开发者平台人脸识别接口