首先,我们来看一下strcat函数的定义与作用
strcat
char *strcat (char*dest,const char *src);
函数描述:将源字符串拼接到目标字符串的末尾
函数参数:
1.char *dest :目标字符串
2.const char *src:源字符串
返回值:拼接成功的字符串的首地址
------------------------------------------------------------------------------------
举个例子:一个字符串a[20]为“hello”,另一个字符串b[20]为"world",我们需要把“world”拼接到“hello”后面,使打印字符串a[20]时,输出的是“helloworld”。
代码展示:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void pinjie(char a[30],char b[30])
{
int i,n=0,m=0;
while(a[n]!=0)
{
n++;
}
while(b[m]!=0)
{
m++;
}
for(i=0;i<m;i++)
{
a[n+1+i]=b[i];
}
for(i=0;i<30;i++)
{
printf("%c",a[i]);
}
printf("\n");
}
int main(int argc, char *argv[])
{
char a[30]={0};
char b[30]={0};
printf("请依次输入两个字符串\n");
scanf("%s",a);
scanf("%s",b);
pinjie(a,b);
return 0;
}
----------------------------------------------------------------------
代码思路:
1.我们需要在主函数(main函数)中定义两个数组存放元素或字符串。
2.然后给这两个数组写入元素或者字符串。
3.再调用自定义的pinjie函数,并将这俩数组作为参数传给自定义的数组pinjie函数。
4.在自定义的pinjie函数中,通过while循环,算出主函数传来的这俩数组的元素个数,也就是m与n的值。所以a数组最后一个元素为a[n],b数组最后一个元素为b[m]。
5.我们的目的是将b数组拼接到a数组末尾,所以就让a数组最后一个元素的后面一个元素(a[n+1])等于b数组的一个元素b[0],直到b元素完全拼接完成(i从0开始不断增加到m)。
//注意,数组的元素是从0位开始写入的,所以每个数组第一个元素不是buf[1],而是buf[0]
6.拼接完成后打印a数组。
---------------------------------------------------------------------------------------------------------------------
运行结果:
数字也是可以的:
//这些就是我自己写这个函数的想法与代码。如有错或者不足,请帮忙指出。