不使用strcat函数,实现两个字符串连接

设计思路:

1、首先我们要找到目标字符串的结尾,即 ‘\0’ 处

2、然后我们再依次把源字符串依次添加到目标字符串的结尾即可

实现源码如下:

#include <stdio.h>

/* 方法1:字符指针方式实现 */
char *my_strcat1(char *dstStr, const char *srcStr)
{
	char *tmp = dstStr;
	
    /* 找到目标字符串的结尾 */
	while (*dstStr)
		dstStr++;
	
    /* dstStr 字符串末尾追加字符串 srcStr */
	while ((*dstStr++ = *srcStr++) != '\0');
    
	return tmp;
}

/* 方法2:字符数组下标方式实现 */
char *my_strcat2(char dstStr[], const char srcStr[])
{
    int i = 0, j = 0;                  
	
	/* 先把变量i计数到dstStr字符串的末尾  */
    while (dstStr[i] != '\0')
    	i++; 
    
	/* dstStr 字符串末尾追加字符串 srcStr */
    while (srcStr[j] != '\0')
        dstStr[i++] = srcStr[j++];
	
	/* 此种方法,这里必须要在末尾自己添加字符串结束标志 */
    dstStr[i] = '\0';
	
	return dstStr;
}

int main(void)
{
 	char str1[30], str2[30];
	
 	printf("请输入第一个字符串:\n");
 	scanf("%s", str1);
 	printf("请输入第一个字符串:\n");
	scanf("%s", str2);
	
	printf("str1 + str2 = %s\n", my_strcat1(str1, str2));
	
	return 0;
}

在ubuntu终端下编译,没有任何报错。然后运行结果如下图:
在这里插入图片描述

  • 6
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值