当前位置:网站首页>my_strcpy的实现(经典,简单,实用,收藏)
my_strcpy的实现(经典,简单,实用,收藏)
2022-07-23 05:39:00 【rookieﻬ°】
C语言函数库中定义的strcpy是什么样的?


这是cpulspuls上面的注解(点击进入注解网页),大家感兴趣可以仔细进网站看看。
标准解释告诉我们,strcpy的返回类型为char*,也就是字符指针类型,相当于字符串数组首地址,而函数strcpy(arr1,arr2)的作用就是将arr2的内容copy到arr1中,但是arr2中的内容不变。
下面是cplusplus上举的例子:
/* strcpy example */
#include <stdio.h>
#include <string.h>
int main ()
{
char str1[]="Sample string";
char str2[40];
char str3[40];
strcpy (str2,str1);
strcpy (str3,"copy successful");
printf ("str1: %s\nstr2: %s\nstr3: %s\n",str1,str2,str3);
return 0;
}
输出:
str1: Sample string
str2: Sample string
str3: copy successful
--------------------------------------------------------------------------------------------------------------------------------------
如何快准狠写出自己的my_strcpy?
下面是我的方法,附带注解,望大佬指正!
#include<stdio.h>
char* my_strcpy(char* destination,const char* resource)//这个const可是非常重要的,可是非常重要的,因为arr2是我们不想修改的
{
char* ret = destination;//记住目标的地址,后面作为return的对象
while(*destination++=*resource++)//这里当*resource的内容不为\0的时候,其内容远远不断的赋值给
{
//arr1也就是目标字符串,最后当\0赋值完毕的时候,while()循环
; //判定条件为假,终止操作,这时我们的目的也已经达成。
}
return ret;//返回已经修改的字符串的首地址,相当于返回了修改的目标字符串
}
int main()
{
char arr1[] = {
"xxxxxxxxxxxx"};
char arr2[] = {
"jinitaimei"};
my_strcpy(arr1,arr2);//调用函数
printf("%s\n",arr1);
return 0;
}
朋友,我想,你也不想白嫖吧[doge]
边栏推荐
猜你喜欢
D2DEngine食用教程(1)———最简单的程序

Dictionary creation and copying

idea中复制一个项目/project

给图片人脸部分加上马赛克

Master slave synchronization step read / write separation + self encountered error sharing

WebSocket长连接

好玩的代码雨,在线分享给大家~-

Spark常见面试问题整理

Oracle创建数据库“监听程序未启动或数据库服务未注册”错误处理

Five methods to prevent over fitting of neural network
随机推荐
D2DEngine食用教程(2)———绘制图像
First meet flask
idea中复制一个项目/project
Anr error encountered
【文献调研】在Pubmed上搜索特定影响因子期刊上的论文
【Pyradiomics】提取的影像组学特征值不正常(很多0和1)
3.Flask 中的线程
机器学习零散笔记:一些概念和注意
超级简单的人脸识别api 只需几行代码就可以实现人脸识别
plsql创建Oracle数据库报错:使用Database Control配置数据库时,要求在当前Oracle主目录中配置监听程序 必须运行Netca以配置监听程序,然后才能继续。或者
Keras保存训练过程中的最好模型
JDBC Learning and simple Encapsulation
【系统问题】.NET Framework 3.5 安装错误
py程序可以运行,但打包出的exe运行提示错误:加载“cv2”二进制扩展时检测到递归。请检查OpenCV安装。
Large factory interview machine learning algorithm (0): Feature Engineering | data preprocessing
【无标题】
2.启动函数返回值的剖析
[Anaconda environmental management and package management]
超链接去掉下划线代码
JDBC的學習以及簡單封裝