/*************************************************************************
> File Name: mystrcat/mystrncat.c
> Author: yuri
> Mail: yuri_chen_28@163.com
> Created Time: 2019年04月10日 星期三 21时11分02秒
> 注意使用strncat存在越界风险,使用时候注意设置size
************************************************************************/
#include<stdio.h>
char arr[10] = {
0,1,2,3,4,5,6,7,8,9
};
char *mystrcat(char *p_dest, const char *p_src)
{
char *p_loc_dest = p_dest;
const char *p_loc_src = p_src;
while(*p_loc_dest)
{
p_loc_dest++;
}
while(*p_loc_src)
{
*p_loc_dest = *p_loc_src;
p_loc_dest++;
p_loc_src++;
}
*p_loc_dest = '\0';
return p_dest;
}
char *mystrncat(char *p_dest, const char *p_src, int size)
{
char *p_loc_dest = p_dest;
const char *p_loc_src = p_src;
while(*p_loc_dest)
{
p_loc_dest++;
}
while(size--)
{
if(*p_loc_src)
{
*p_loc_dest = *p_loc_src;
p_loc_dest++;
p_loc_src++;
}
else
{
break;
}
}
*p_loc_dest = '\0';
return p_dest;
}
int main()
{
// printf("%s\n", mystrcat(arr, "abc"));
printf("%s\n", mystrncat(arr, "abcdefghi", 3));
for(int i = 0;i < 10;i++)
{
printf("%d\n", *(arr + i));
}
return 0;
}