使用指针封装一个实现strcat功能的函数

strcat函数的原理:

        将两个字符串内的数据进行拼接,将拼接好的数据放在目标字符串中。

编程思想:

         使用char类型的两个指针(dest,src)指向目标字符串和只读字符串首地址,通过while循环使指针(dest)指向目标字符串尾地址,再通过while循环从只读字符串首位的值赋给目标字符串尾地址的后一位,直到指针src指向只读字符串尾地址的后一位(‘\0’),最后将‘\0’赋给目标字符串的尾地址。

具体代码:

#include <stdio.h>
/*
功能:从终端获取两个字符串,实现字符串的拼接
参数:目标字符串dest,只读字符串src
返回值:指向拼接后目标字符串的指针
 */
char *my_strcat(char *dest,const char *src){ //第二个字符串的元素不可改变 需加const关键字
	char *first = dest;
	while(*first){    //将指针dest指向目标字符串的尾地址
		*first++;
	}
	while(*src){        
		*first++ = *src++;    //将只读字符串拼接在目标字符串后
	}
	*first = *src;          //将只读字符串‘\0’赋值给目标字符串的最后一位
	return dest;

}

int main(int argc, const char *argv[])
{
	char s1[64] = "0";        //定义目标字符串s1的大小并将其初始化
	char s2[64] = "0";        //定义字符串s2的大小并将其初始化
	printf("输入字符串s1:\n");
	scanf("%s",s1);
	printf("输入字符串s2:\n");
	scanf("%s",s2);
	printf("字符串s1变为:%s\n",my_strcat(s1,s2));
	return 0;
}

 注意:

         1.主函数中的目标字符串(s1)和只读字符串(s2)的大小会影响终端输入各字符串元素的个数。

        2.函数体中最后必须将只读字符串的末位‘\0’赋给目标字符串,不然目标字符串在输出时可能错误判断结尾,输出随机值。

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

枸杞桑葚菊花茶

创作不易,鼓励==>动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值