程序员成长之旅——模拟实现strcat和strncat
Mystrcat
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
char* Mystrcat(char* dest, const char* src)
{
assert(dest);
assert(src);
char* ret = dest;
while (*dest)
{
dest++;
}
while (*dest++ = *src++)
{
;
}
return ret;
}
int main()
{
char* src = "Word";
char dest[15] = "Hello";
char* ret = Mystrcat(dest, src);
printf("%s\n", ret);
system("pause");
return 0;
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190714172430285.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1d2Vpd3VqdV9fXw==,size_16,color_FFFFFF,t_70)
Mystrncat
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
char* Mystrncat(char* dest, const char* src, int count)
{
assert(dest && src);
char* ret = dest;
while (*dest)
{
dest++;
}
while (count--)
{
*dest++ = *src++;
}
return ret;
}
int main()
{
char dest[10] = "Hello";
char* src = "Word";
int count = 3;
char* ret = Mystrncat(dest,src,count);
printf("%s\n", ret);
system("pause");
return 0;
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190714172552575.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1d2Vpd3VqdV9fXw==,size_16,color_FFFFFF,t_70)