模拟实现strcpy以及对比库函数的实现
一、strcpy的实现原理
二、strcpy的模拟实现
一、strcpy的实现原理
strcpy的用法如下:
通过F11监视可得到strcpy的实现过程如下:
程序输出的是:
strcpy原理:将第二个参数的字符串 逐一拷贝 到第一个参数的对应位置,包括'\0'。
ps:
- arr1的空间必须是可变的
- arr1的空间足够大,以确保能放arr2
- arr2必须以'\0'结束
- 会将arr2的'\0'拷贝到目标空间。
二、模拟实现strcpy
代码如下:
#include<stdiol.h>
#include<assert.h>
char*my_strcpy(char* str1,const char* str2){
assert(str1&&str2);
char*ret =str1;
while((*str1++=*str2++)!='\0'){};
return ret;
}
int main(){
char arr1[]="abcdefghi";
char arr2[]="nygj";
my_strcpy(arr1,arr2);
printf("%s\n",arr1);
return 0;
}
此时my_strlen的str1和str2的变化如下图: