模拟实现strcat函数
作者:互联网
前言:
- 目标空间应该足够大到容纳拼接后的字符串
- 目标空间的’\0’必须被追加字符串的第一个字符替代
- 要将’\0’ 追加到目标空间
- 目标空间可变,即不能用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