一起养成写作习惯!这是我参与「掘金日新计划 · 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
最后
最后不知道你学会了没有,实际上理解了数组和指针之间的关系还是非常的容易的。