模拟实现strcpy以及对比库函数的实现

一、strcpy的实现原理
二、strcpy的模拟实现

一、strcpy的实现原理

strcpy的用法如下:

通过F11监视可得到strcpy的实现过程如下:

程序输出的是:

strcpy原理:将第二个参数的字符串 逐一拷贝 到第一个参数的对应位置,包括'\0'。
ps:

  1. arr1的空间必须是可变的
  2. arr1的空间足够大,以确保能放arr2
  3. arr2必须以'\0'结束
  4. 会将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的变化如下图:

posted @ 2023-02-20 00:34  燥zao  阅读(35)  评论(0编辑  收藏  举报