首页 > 其他分享 >自己实现拷贝函数my_strcpy(依次逐步完善)

自己实现拷贝函数my_strcpy(依次逐步完善)

时间:2023-03-09 21:32:29浏览次数:31  
标签:++ char strcpy arr2 arr1 拷贝 NULL my

#include<stdio.h>
#include<assert.h>//为了引用assert

void my_strcpy1(char* arr1, char* arr2) {
while (*arr2 != '\0') {
*arr1 = *arr2;
arr1++;
arr2++;
}
*arr1 = *arr2;
}
void my_strcpy2(char* arr1, char* arr2) {
while (*arr1++=*arr2++) {
; //简洁
}
}
void my_strcpy3(char* arr1, char* arr2) {
assert(arr1 != NULL);
assert(arr2 != NULL); //用来防止其中一个是空指针
while (*arr1++ = *arr2++) {
;
}
}
void my_strcpy4(char* arr1,const char* arr2) {
assert(arr1 != NULL);
assert(arr2 != NULL);
while (*arr1++ = *arr2++) { //防止此处写反
;
}
}
char* my_strcpy5(char* arr1, const char* arr2) {
char* str = arr1;
assert(arr1 != NULL);
assert(arr2 != NULL);
while (*arr1++ = *arr2++) {
;
}
return str; //链式访问
}
int main() {
char arr1[] = "#######";
char arr2[] = "abcd";
printf("%s\n", arr1);
//my_strcpy1(arr1, arr2);
//my_strcpy2(arr1, arr2);
//my_strcpy3(arr1, arr2);
//my_strcpy4(arr1, arr2);
printf("%s\n", my_strcpy5(arr1, arr2));
//printf("%s\n", arr1);
return 0;
}

标签:++,char,strcpy,arr2,arr1,拷贝,NULL,my
From: https://blog.51cto.com/u_13606048/6111332

相关文章

  • docker 学习之一 装MySQL 供远程使用 Linux
    因为Linux发行版本的问题折腾了好久,尽量使用LTS的版本。其他版本有时候缺的东西太多了,对新手相当不友好。大概花了几天实在没招了,下了个LTS的版本,再装时正常了。按照官方......
  • 【Mybatis】【插件】Mybatis源码解析-插件机制
    1 前言这节我们来看看插件,插件是来干啥的呢?一般情况下,开源框架都会提供插件或其他形式的拓展点,供开发者自行拓展。这样的好处是显而易见的,一是增加了框架的灵活性。二......
  • 关于在SSM项目中使用mybatis-plus时控制台出现was not registered for synchronizatio
    1.出现这个问题可能会出现事务不同步的问题导致无法进行数据库的连接。可以在service层中添加@Tranational注解2.这里我解决是添加配置文件log4j的配置文件查看是数据库连......
  • mysql
    一,回顾MYSQL数据库连接mysql.exe-h127.0.0.1-P3306-uroot-pmysql-urootmysq1-uroot<拖拽文件对数据的增删改查insertinto数据表名称values(一组值,..);dele......
  • Mysql基本语句练习
    先从简单的开始:userBehavior:用户行为record:记录增加:向用户行为表添加一条数据insertintouserBehavior(id,name,record,createTime,updateTime)values(1,"gugu","打开了......
  • MyBatis
    一、什么是MyBatisMyBatis是一款优秀的持久层框架,用于简化JDBC开发MyBatis本是Apache的一个开源项目iBatis,2010年这个项目由apachesoftwarefoundation......
  • mysql备份
    mysql中通过mysqldump进行逻辑备份。1.导出指定表的数据mysqldump-tdatabase-uusername-ppassword--tablestable_name1table_name2 table_name3 >D:\db_scrip......
  • centos 安装clickhouse 并导入mysql数据
    一.安装clickhouse1.系统要求 ClickHouse可以在任何具有x86_64,AArch64或PowerPC64LECPU架构的Linux,FreeBSD或MacOSX上运行。 官方预构建的二进制文件通常针对x86_......
  • 【MYSQL】函数的分类
     数值函数  取随机数四舍五入 截断 弧度和角度  一个圆等于2Π ......
  • Mybatis 快速入门
    要使用MyBatis,只需将 mybatis-x.x.x.jar 文件置于类路径(classpath)中即可。如果使用Maven来构建项目,则需将下面的依赖代码置于pom.xml文件中:<dependency><gro......