模拟实现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 - 字符串拷贝(覆盖)的主要内容,如果未能解决你的问题,请参考以下文章