模拟实现strcpy - 字符串拷贝(覆盖)

Posted 再吃一个橘子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模拟实现strcpy - 字符串拷贝(覆盖)相关的知识,希望对你有一定的参考价值。

strcpy函数

语法:

char* strcpy(char * destination, const char * source );

功能:

源字符串拷贝到目标字符串中(  包括目标字符串中的‘  \\0 ’  )

  • 源字符串必须以 '\\0' 结束。
  • 会将源字符串中的 '\\0' 拷贝到目标空间。
  • 目标空间必须足够大,以确保能存放源字符串
  • 目标空间必须可变。(    即:不能是不可修改的常量字符串    )

模拟实现strcpy函数

基础版

#include<stdio.h>
#include<assert.h>
void* my_strcpy(char* dest, const char* src)
{
	assert(dest && src);
	char* ret = dest;
	while (*src)
	{
		*dest = *src;
		dest++;
		src++;
	}
	*dest = '\\0';
}
int main()
{
	char arr1[] = "xxxxxxxxxxxxxxxx";
	char arr2[] = "abc";
	my_strcpy(arr1, arr2);

	printf("%s", arr1);

	return 0;
}

优化版

#include<stdio.h>
#include<stdio.h>
#include<assert.h>
char* my_strcpy(char* dest, char* src)
{
	assert(dest && src);
	char* ret = dest;
	while (*dest++ = *src++)
	{
		;
	}
	
	return ret;
}
int main()
{
	char arr1[] = "xxxxxxxxxxxxxxxx";
	char arr2[] = "hello";

	printf("%s\\n", my_strcpy(arr1, arr2));
	return 0;
}

以上是关于模拟实现strcpy - 字符串拷贝(覆盖)的主要内容,如果未能解决你的问题,请参考以下文章

通过模拟strcpy函数学习编程思想

strcpy函数详解&&注意事项&&模拟实现

c语言 strcpy,strcat,strcmp函数模拟实现

实现memcpy

代码题(63)— 字符串拷贝

strcpy函数问题