1、功能
strcpy函数: 将源字符串拷贝到目标空间中。
注意:
- 会将源字符串 中的'\0' 拷贝到目标空间。
- 目标空间必须足够大,确保能存放源字符串。
- 目标空间必须可修改,即不能为常量字符串。
2、参数及返回类型
如上图:strcpy函数的 参数为 char*类型,返回类型为char*
3、strcpy函数的模拟实现
#define _CRT_SECURE_NO_WARNINGS 1
//将源字符串拷贝到目标空间中
#include <stdio.h>
char* my_strcpy(char* dest, char* src)
{
char* ret = dest; //将dest起始地址放入ret中
while (*src != '\0')
{
*dest = *src;
dest++;
src++;
}
return ret;
}
int main()
{
char arr1[] = "hello";
char arr2[20] = "0";
my_strcpy(arr2, arr1);
printf("%s\n", arr1);
printf("%s\n", arr2);
return 0;
}
4、优化
//优化
char* my_strcpy(char* dest,const char* src)
{
const char* ret = dest; //将dest起始地址放入ret中
while (*dest++ = *src++)
{
; //空语句
}
return ret;
}
5、完整代码
#define _CRT_SECURE_NO_WARNINGS 1
//将源字符串拷贝到目标空间中
#include <stdio.h>
//char* my_strcpy(char* dest, char* src)
//{
// char* ret = dest; //将dest起始地址放入ret中
// while (*src != '\0')
// {
// *dest = *src;
// dest++;
// src++;
// }
// return ret;
//}
//优化
char* my_strcpy(char* dest,const char* src)
{
const char* ret = dest; //将dest起始地址放入ret中
while (*dest++ = *src++)
{
; //空语句
}
return ret;
}
int main()
{
char arr1[] = "hello";
char arr2[20] = "0";
my_strcpy(arr2, arr1);
printf("%s\n", arr1);
printf("%s\n", arr2);
return 0;
}