【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中

相关推荐
小鸡吃米…2 分钟前
Python - JSON
开发语言·python·json
JAVA+C语言6 分钟前
C#——接口
开发语言·c#
黎雁·泠崖8 分钟前
吃透指针通用用法:回调函数与 qsort 的使用和模拟
c语言·开发语言
whn19778 分钟前
达梦数据库的整体负载变化查看
java·开发语言·数据库
脏脏a10 分钟前
聊聊 C 里的进制转换、移位操作与算术转换
c语言·开发语言·移位操作符
xie_pin_an10 分钟前
深入解析 C 语言排序算法:从快排优化到外排序实现
c语言·算法·排序算法
陳103012 分钟前
C++:string(4)
开发语言·c++
ZHang......13 分钟前
synchronized(三)
开发语言·笔记·juc
许泽宇的技术分享14 分钟前
AgentFramework:错误处理策略
开发语言·c#
阿里嘎多学长24 分钟前
2025-12-21 GitHub 热点项目精选
开发语言·程序员·github·代码托管