【C语言】第31题 - 模拟实现strcat()函数

202 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第12天,点击查看活动详情

🚀write in front🚀

🔎大家好,我是泽奀,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝
✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本📩
💬总结:希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🖊

前言

hello,各位亲爱的小伙伴们又到了我们的刷题时间,不知道此时的你准备好了没有。

题目描述

模拟实现strcat()函数。

题目分析

来介绍下什么是strcat()函数,strcat() 函数的声明方式如下 👇

char *strcat(char *dest, const char *src)

将源字符串的副本追加到目标字符串。
dest → 指向目标数组,该数组包含了一个 C 字符串,且足够容纳追加后的字符串。
src → 指向要追加的字符串,该字符串不会覆盖目标字符串。
该函数返回一个指向最终的目标字符串 dest 的指针。
src 所指向的字符串追加到 dest 所指向的字符串的结尾。
模拟实现的思路很简单其实 👇

  • Ⅰ→dest 找到目标字符串'\0'
  • Ⅱ→再把源数据追加到字符串'\0'的后面,注意:是包含'\0'的。

题目代码​

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<assert.h>
char *My_strcat(char *dest, const char *src)
{
	assert(dest && src != NULL);
	char *ret = dest;
	while (*dest != '\0')//'\0'的ASCLL码值就是0
	{
		dest++;
	}
	//dest指向的是'\0'
	while (*dest++ = *src++)
	{
		;
	}
	return ret;
}
int main(void)
{
	char arr1[20] = "hello C";
	char arr2[20] = "yuyan";
	printf("%s\n", My_strcat(arr1, arr2));
	return 0;
}

运行结果

hello Cyuyan

最后

最后不知道你学会了没有,实际上理解了数组和指针之间的关系还是非常的容易的。