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;
}