#include<stdio.h>
#include<assert.h>
#include<string.h>
#define N 50
// char *my_strcat(char *dest, char *src)
// {
// assert((dest != NULL)&&(src != NULL));//断言:判断表达式一定为真,若为假,则终止程序
// char *p = dest;
// while(*dest != '\0')//找到数组dest中\0的位置
// {
// dest++;
// }
// while(*src != '\0')//从数组dest中\0的位置开始,依次赋数组src中的值
// {
// *dest = *src;
// dest++;
// src++;
// }
// *dest = '\0';
// return p;
// }
char *my_strcat(char *dest, char *src)
{
assert((dest != NULL)&&(src != NULL));//断言:判断表达式一定为真,若为假,则终止程序
char *p = dest;
while(*dest++);//找到数组dest中\0的位置
while((*dest++ = *src++) != 0);//从数组dest中\0的位置开始,依次赋数组src中的值
return p;
}
int main(int argc, const char *argv[])
{
char buf[N] = {"abcdefgtyui"};//定义需要传给形参,给形参赋值的变量
char buff[] = {"12345"};
char *p = NULL;
int i = 0;
p = my_strcat(buf, buff);
for(i = 0;i< N;i++)
{
//printf("%c ",*(p + i));
printf("%c ",p[i]);
}
putchar('\n');
printf("strcat(buf, buff) = %s\n", p);
p = strcat(buf, buff);
printf("strcat(buf, buff) = %s\n", p);
return 0;
}