strcpy的模拟实现(c基础)
hi , I am 36.
适合对象c语言初学者
strcpy是一个实现字符串赋值的函数。
基本格式
#include<string.h>
strcpy(n2,n1)
功能把n1长度的值赋值给n2.
链接
如何模拟实现呢
首先明确My__strcpy();需要返回值,返回arr2的起始地址
于是char* My__strcpy();
要实现赋值功能,需要有两个字符串数组
于是char* My__strcpy(char arr2[], char arr1[]);
其中arr2需要被赋值
所以使用时需传递n2地址给arr2,n1地址给arr1
n2 , n1 即地址 链接分享一下arr的意义(c基础)-CSDN博客
思路
结果
代码
#include<stdio.h>
//模拟strcpy功能
char* My__strcpy(char arr2[], char arr1[])
{
//思路:用递归 采用一一赋值,若未结束地址加一继续赋值
if (*arr1 != '\0')//判断此时arr1是否结束
{
//若不是赋值给arr2
*arr2 = *arr1;
//继续调用,继续赋值
My__strcpy(arr2 + 1, arr1 + 1);
}
else//完美实现了strcpy的特性:非复制,而是把arr1长度的值赋值给arr2
{
*arr2 = '\0';
}
return arr2;
}
int main()
{
char n1[20] = "hi , I am 36!";
char n2[20] = { 0 };
printf("%s", My__strcpy(n2,n1););
return 0;
}
若对数组不熟悉
请看介绍一下数组(c基础)(详细版)-CSDN博客
分享一下arr的意义(c基础)-CSDN博客
hi , I am 36. thanks for your looking.👍👍👍