思路:连接字符串的关键是找到第1个字符串的结束符,然后从这个结束符开始,依次把第2个字符串的各个字符拷贝到第一个字符串的后面。要寻找第1个字符串的结束符,可使用循环遍历来解决。注意不要丢失结束符。
#include<stdio.h>
#include<assert.h>
#define NUL '\0'
/*****************************************************************
*函数名:my_strcat
*函数参数:des-指向被拼接的字符串的指针;res-用于拼接的字符串的指针
*函数功能描述:将res所指向的字符串拼接到des所指向字符串的后面
*函数返回值:无返回值
*作者:王赋睿
*函数创建日期:2018.6.4
*函数修改日期:尚未修改
*修改人:尚未修改
*修改原因:尚未修改
*版本:1.0
*历史版本:无
*****************************************************************/
void
my_strcat(char *des, char const *res)
{
assert(NULL != des || NULL != res);
//让des移动到结束符处
while (*des != '\0')
{
++des;
}
//将res所指向的字符拼接到des所指向字符串的后面
while (*res != '\0')
{
*des++ = *res++;
}
//注意不要漏掉结束符'\0'
*des = *res;
}
int
main()
{
char s1[40], s2[40];
printf("输入两个字符串:\n");
gets_s(s1, 39);
gets_s(s2, 39);
my_strcat(s1, s2);
printf("连接以后的字符串为:%s", s1);
return 0;
}
本程序在VS2017下运行通过