首页 > 其他分享 >模拟实现strcpy以及对比库函数的实现

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

时间:2023-02-20 00:44:42浏览次数:72  
标签:实现 str2 char strcpy arr2 arr1 库函数

一、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(dest&&src);
    char*ret =dest;
    while(*str1++==*str2++){};
    return ret;
}

int main(){
  char arr1[]="abcdefghi";
  char arr2[]="nygj";
  my_strcpy(arr1,arr2);
  printf("%s\n",arr1);

  return 0;
}

此时my_strlen的str1和str2的变化如下图:

标签:实现,str2,char,strcpy,arr2,arr1,库函数
From: https://www.cnblogs.com/zzao/p/17136022.html

相关文章

  • Python实现排序算法
    冒泡排序defbubbleSort(arr):foriinrange(len(arr)-1):forjinrange(len(arr)-1):ifarr[j]>arr[j+1]:arr[j],arr[j+1......
  • #yyds干货盘点#【愚公系列】2023年02月 微信小程序-Vant实现自定义tabBar
    前言小程序自定义tabBar官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/ability/custom-tabbar.html1、说明小程序自定义tabBar两种方式:一种采用......
  • Java实现对MongoDB的AND、OR和IN操作
    很全的JAVA操作mongodb:​​http://www.blogjava.net/xiaomage234/archive/2012/08/06/384904.html​​ 转的: AND:publicvoidtestAnd(){//agender='female'ANDag......
  • 用Lock和Condition,实现主线程执行5次,子线程再执行10次,孙线程执行15次,如此反复5次
    packagetest1;importjava.util.concurrent.locks.Condition;importjava.util.concurrent.locks.Lock;importjava.util.concurrent.locks.ReentrantLock;/***用Lock和C......
  • FACL实现文件的灵活权限控制
    ACL:AccessControlList,实现灵活的权限管理除了文件的所有者,所属组和其它人,可以对更多的用户设置权限ACL生效顺序:所有者,自定义用户,自定义组,其他人选项:-m修改文件......
  • Qt实现仪表盘
    #include"mainwindow.h"#include"ui_mainwindow.h"MainWindow::MainWindow(QWidget*parent):QMainWindow(parent),ui(newUi::MainWindow){ui->setupUi(thi......
  • 各大排序算法的优缺点以及实现方法
    这篇文章,我们来谈谈一些关于排序的东西注意!这篇文章在写的时候混淆了一个概念,“稳定”本义指的是能保证两个相等的数,经过排序之后,序列的前后位置顺序不变。在本文中理解成......
  • 树与二叉树的基础概念与代码实现
    树与二叉树的基础概念与代码实现树,其实跟我们现实生活中的树是差不多的。如果你还不了解树这个数据结构的话,你可能认为树是这样的:但事实正好相反,在数据结构当中,树的模......
  • 外部排序【java实现】
    外部排序什么是外部排序?外部排序是一种把大量无序的数据,按一定的顺序排序的算法。它是一种非常适合处理海量数据的算法,其原理主要有以下几点:首先,将所有要排序的数据分......
  • 64-CICD持续集成工具-Jenkins实现自动化任务构建
    周期性构建概念:周期性构建这是—-种基于cron类型的构建机制.按照预定义的时间周期性启动作务对于期望能够基于代码变更进行触的CI场景来说,周期性构建并非其最佳选项,但对于......