【C语言】【strcpy的使用和模拟实现】

1.strcpy的使用:

c 复制代码
char* strcpy(char* destination,const char* source)

返回类型是字符指针,参数是接受方字符串的首地址和要拷贝的字符串的首地址

  • 从接受地的'\0'开始拷贝,会将源字符串中的'\0'也拷贝过来
  • 目标空间必须足够大,能放开源字符串
  • 目标空间必须可变

使用举例:

c 复制代码
#include<stdio.h>
#include<string.h>
int main()
{
	char arr1[] = "hello bit";
	char arr2[20] = "xxx";
	strcpy(arr2, arr1);
	printf("%s\n", arr2);
	return 0;

}

2.strcpy的模拟实现:

版本一:

c 复制代码
#include<stdio.h>
#include<string.h>
void my_strcpy(char* dest, const char* src)
{
	//当arr2不等于'\0'时
	while (*src)
	{
		*dest = *src;
		dest++;
		src++;
	}
	//当arr2等于'\0'时
	*dest = *src;
}
int main()
{
	char arr1[] = "abcdef";
	char arr2[20] = { 0 };
	my_strcpy(arr2, arr1);
	printf("%s\n", arr2);
	return 0;
}

版本二:(高阶版)两部分合到一起

c 复制代码
#include<stdio.h>
#include<string.h>
void my_strcpy(char* dest, const char* scr)
{
	while (*dest++ = *scr++)
	{
		;
	}
}
int main()
{
	char arr1[] = "abcde";
	char arr2[20] = { 0 };
	my_strcpy(arr2, arr1);
	printf("%s", arr2);
}

这个方法的妙处就在于 while循环的条件中,当 *scr='\0'时,while 循环会自动跳出,而且scr中'\0'也能被拷贝到dest中

相关推荐
BigDark的笔记5 分钟前
【ARM汇编】0x01_ARM和C混合编程实现基本运算
c语言·汇编·arm开发
今儿敲了吗8 分钟前
44| 汉诺塔问题
数据结构·c++·笔记·学习·算法·深度优先
叫我一声阿雷吧18 分钟前
JS 入门通关手册(21):原型链:JS 继承的底层原理
开发语言·javascript·前端面试·原型链·js继承·js进阶·js面向对象
花姐夫Jun21 分钟前
WebGL学习-czm_getMaterial详解
学习·webgl
野犬寒鸦22 分钟前
从零起步学习计算机操作系统:内存管理篇
服务器·后端·学习·缓存·面试
猫墨*25 分钟前
springboot3、knife4j-openapi3配置动态接口版本管理
java·开发语言
weixin_5316518125 分钟前
Python 渐进式学习指南
开发语言·windows·python
夏日听雨眠27 分钟前
文件学习终
windows·学习
weixin_6495556727 分钟前
C语言程序设计第四版(何钦铭、颜晖)第八章指针之在数组中查找指定元素
c语言·开发语言
add45a31 分钟前
C++中的原型模式
开发语言·c++·算法