打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
自己编写strcpy和strcat
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char *str_cat(char *str1, char *str2)
{
    assert((str1!=NULL)&&(str2!=NULL));
    char *str,*tmp;

    str = (char *)malloc((strlen(str1)+strlen(str2)+1)*sizeof(char));
    tmp = str; //保存地址

    while(*str1!='\0') { //这里不能像复制函数那样写,会复制两次'\0'而导致错误
        *str++ = *str1;
        str1++;
    }
    while(*str2!='\0') {
        *str++ = *str2;
        str2++;
    }

    return tmp;
}

char *str_cpy(char *dst, char *sourc)
{
    assert((sourc!=NULL)&&(dst!=NULL));
    char *tmp;
    tmp=dst; //保存地址
    //int i=0;
    printf("strlen sourc:%d\n",strlen(sourc));

    while((*dst++ = *sourc++ )!='\0'); //已经包含复制了'\0'

    return tmp;
}

int main()
{
    char *str1="hello ";
    char *str2="world";
    char *str=NULL;
    str = str_cat(str1,str2);
    printf("str_cat:%s, %d\n",str,strlen(str));
    free(str);
    str_cpy(str,str1);
    printf("str_cpy:%s, %d\n",str,strlen(str));
}

结果正确,能实现复制和连接的功能。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
经典C/C++算法
面试中经常出现的算法
C语言中strcpy,strcmp,strlen,strcat函数原型
一文讲解C语言字符串
UC头条:C语言进阶之字符串函数和内存函数的介绍及部分函数的模拟实现
字符串移位包含的问题
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服