这个函数原型
char* my_strcat(char* dest,const char *src)
为什么方便大家去理解,这里直接讲解这个函数的使用方法,这个函数是字符串的追加
今年喜欢时代少年团,那么我们想要将马嘉祺和刘耀文的名字写在一起,那么就可以用strcat函数
#include<stdio.h>
#include<string.h>
int main()
{
char a[30] = "majiaqi ";//这个不能用const修饰
const char* b = "liuyaowen ";
strcat(a, b);
printf("%s", a);
return 0;
}
记住1.传过去地址dest,src都需要有\0,不然字符串无法追加
2.目标空间要可以修改
那么这个函数的内部是什么样子呢
#include<stdio.h>
#include<string.h>
#include<assert.h>
char* my_strcat(char* dest, const char* src)
{
char* ret = dest;
assert(dest != NULL);//确保这两个地址不会是空指针
assert(src != NULL);
while(*dest)
{
dest++;//不断的往后面推进,知道找到dest的\0为止
}
while ((*dest++ = *src))//一个十分精妙的设计,刚好在循环的时候还把需要追加的部分放在了src的后面
{
;//这个;不可省略
}
return dest;
}
以上就是这个函数的内部的内部的样子