首先,我们要知道的是strcpy函数是c语言中的一个库函数。调用它时需要引用头文件#include <string.h>

其作用是复制一个字符串.并且只能将一个短的字符串复制到一个长的字符串里面去。

在creference中给出的语法是

char * strcpy ( char * destination, const char * source );
#include <stdio.h>
#include <string.h>//我们先来简单的使用一下这个函数int main()
{char arr1[] = "*****************";char arr2[] = "Hello World!";strcpy(arr1, arr2);    //这里需要注意的一点是,数组进行传参时,传的是首元素的地址printf("%s", arr1);    //字符串的结束标志是'\0'return 0;              //在调用strcpy函数的时候,将'\0'也复制到arr2里面去了
}

现在开始来逐步实现strcpy这个函数,包含代码的改进

//第一次代码
#include <stdio.h>void my_strcpy(char* dest, char* src)
{while (*src != '\0')         //传入的是目标和源头的地址,要对传入参数的地址进行解引用操作{                            //然后进行一个简单的判断*dest++ = *src++;        //这是后置加加,要明白的一点是,后置加加是先加加后使用}                            *dest = *src;
}int main()
{char arr1[] = "*****************";char arr2[] = "Hello World!";my_strcpy(arr1, arr2);printf("%s", arr1);return 0;
}
//代码改进1
#include <stdio.h>void my_strcpy(char* dest, char* src)
{while (*dest++ = *src++)   //此代码的改进主要是改进了循环语句,使得我们的代码看起来更加的简短{                          //分析一下循环的条件,每次src和dest的地址移动一个字节,再进行解引;                      //用赋值,当*src = '\0'的时候,循环停止,同时*dest也被赋值}
}int main()
{char arr1[] = "*****************";char arr2[] = "Hello World!";my_strcpy(arr1, arr2);printf("%s", arr1);return 0;
}
//代码的改进2
#include <stdio.h>char* my_strcpy(char* dest, const char* src)//1.
{                                          //我们希望的是仅dest指向的内容被修改,但是src指向的内容不被修改char* ret = dest;                      //在进行函数传参的时候,我们有时会将源头参数和终点参数弄反,这时while (*dest++ = *src++)               //程序就会出现错误,我们为了保护源头参数,在其前面加入const可保证{                                      //其修饰的值不能被修改;                                  //2.}return ret;                            //strcpy返回的是目标空间的起始地址
}                                          //因此,把函数的返回类型修改为char*int main()
{char arr1[] = "*****************";char arr2[] = "Hello World!";my_strcpy(arr1, arr2);printf("%s", arr1);return 0;
}

C语言中strcpy函数的实现相关推荐

  1. java strcpy,详解C语言中strcpy()函数与strncpy()函数的使用

    C语言strcpy()函数:复制字符串 头文件:#include 定义函数: char *strcpy(char *dest, const char *src); 函数说明:strcpy()会将参数s ...

  2. c语言中strcpy函数的功能是,strcpy函数的作用是是什么?

    strcpy,即string copy(字符串复制)的缩写,是一种C语言的标准库函数. strcpy函数的作用:对字符串进行复制(拷贝),把含有"\0"结束符的字符串复制到另一个地 ...

  3. C语言程序设计中strcpy,C语言中strcpy函数

    讲解比较的详细! 已知strcpy函数的原型是 char* strcpy(char* strDest,const char* strSrc); 1.不调用库函数,实现strcpy函数 2.解释为什么要 ...

  4. c语言 strcpy原型,浅谈C语言中strcpy,strcmp,strlen,strcat函数原型

    实例如下: //strcat(dest,src)把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0' char *strcat(char * strDest, cons ...

  5. C语言中atoi()函数的用法

    C语言中atoi()函数的用法 一.学习要点: 1.int atoi(const char *str)把参数str所指向的字符串转换为一个整数: 二.代码 #include<stdio.h> ...

  6. c语言time函数的作用,c语言中time函数的用法

    c语言中time函数的用法 c语言中time函数的用法的用法你知道吗?下面应届毕业生小编就跟你们详细介绍下c语言中time函数的用法的用法,希望对你们有用. c语言中time函数的用法的用法如下: 头 ...

  7. c语言 strcpy作用,c语言中strcpy的用法

    c语言中strcpy的用法的用法你知道吗?下面小编就跟你们详细介绍下c语言中strcpy的用法的用法,希望对你们有用. c语言中strcpy的用法的用法如下: strcpy原型声明:extern ch ...

  8. 关于C语言中printf函数“输出歧视”的问题

    目录 关于C语言中printf函数"输出歧视"的问题 问题描述 探索问题原因 另一种研究方法 问题结论 关于C语言中printf函数"输出歧视"的问题 问题描述 ...

  9. r语言中c函数错误,R语言中c()函数与paste()函数的区别说明

    c()函数:将括号中的元素连接起来,并不创建向量 paste()函数:连接括号中的元素 例如 c(1, 2:4),结果为1 2 3 4 paste(1, 2:4),结果为"1 2" ...

最新文章

  1. Qt中子线程创建运行时候出现QObject: Cannot create children for a parent that is in a different thread
  2. Windows上使用gitbook制作电子书
  3. nyoj 16 矩形嵌套 (DAG上的DP)
  4. 推荐系统CTR预估学习路线:深度模型
  5. 说说Shell在代码重构中的应用
  6. CLR运行时细节 - Method Descriptor
  7. Akka 配置Dispatcher(一)
  8. jdbc预编译插入数据操作
  9. 90后黄金程序员,你不是码农,请自信
  10. 《Redis开发与运维》学习第四章
  11. libmodbus 封装成dll_Windows Visual Studio 2017 编译 libmodbus
  12. win10手动安装打印机驱动
  13. 外包公司能去吗?进了外包如何翻盘?
  14. python练手项目pdf_一个不错的练手项目!
  15. 正则表达式中(RegExp)的字符和转译
  16. bzoj 3837 (随机过题法了解一下)
  17. 32位ARM®Cortex®-M0+内核单片机 XL32F003系列MCU
  18. 笔记|角度传感器angular transducer
  19. python自动化------问卷星刷问卷3.0版本
  20. 最好的免费WordPress音频播放器插件

热门文章

  1. 【EasyNLP】带你轻松玩转CLUE榜单
  2. Android帧动画
  3. android dpi 修改,Android屏幕适配之修改density
  4. linux常用脚本的使用方法,Linux常用命令用法100个
  5. 《基于历史拥堵图和共识日识别的交通拥堵和出行时间预测》
  6. “入职半年,绩效背了C”,谈谈「绩效管理」的误区及对策
  7. springboot实现日志追踪
  8. MATLAB-switch case 语句
  9. 地理信息技术 中国软件振兴的希望
  10. Linux驱动开发:字符设备驱动开发实战