其他分享
首页 > 其他分享> > 模拟实现strcat函数

模拟实现strcat函数

作者:互联网

前言:

  1. 目标空间应该足够大到容纳拼接后的字符串
  2. 目标空间的’\0’必须被追加字符串的第一个字符替代
  3. 要将’\0’ 追加到目标空间
  4. 目标空间可变,即不能用const修饰、不能用字符指针指向的字符串作为目标空间

代码如下

/*模拟实现字符串的拼接
 * */
#include <stdio.h>
#include <assert.h>
#define N   64
//函数声明
char *my_strcat(char *str1,const char *str2);

int main()
{
    char str1[N] = "123";
    char str2[N] = "456";

    printf("%s\n",my_strcat(str1,str2));
    return 0;
}

//函数定义
char *my_strcat(char *str1,const char *str2)
{
    //1 检查参数的合法性
    assert(str1 && str2);  // str1、str2都不能为空指针
    //2 保存目标空间的首地址
    char *ret = str1;
    //3 寻找目标空间的尾0
    while(*str1 != '\0')
    {
    	str1++;
    }
    //4 循环字符拼接,'\0'也会拼接过去
    while(*str1++ = *str2++);
    //5 返回目标空间的地址
    return ret;
}

程序运行结果
在这里插入图片描述

标签:函数,str2,str1,strcat,目标,char,空间,模拟
来源: https://blog.csdn.net/NICHUN12345/article/details/120389137