不用库,写出与strcat一样功能的函数

4 篇文章 0 订阅
3 篇文章 0 订阅

首先,我们来看一下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数组。

---------------------------------------------------------------------------------------------------------------------

运行结果:

 

 

数字也是可以的:

 

//这些就是我自己写这个函数的想法与代码。如有错或者不足,请帮忙指出。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值