目录
一、模拟实现strcpy函数
strcpy函数是字符串拷贝函数,就是将源字符串拷贝到目标空间中。
char * strcpy ( char * destination, const char * source );//库函数中的声明
将源(source)指向的c字符串复制到目标(destination)指向的数组中,包括终止的空字符(并在该点停止)。
为避免溢出,目标(destination)指向的数组的大小应足够长,以包含与源相同的C字符串(包括终止的空字符),并且在内存中不应与源重叠。在这里需要注意:
1、源字符串必须以 '\0' 结束。
1、会将源字符串中的 '\0' 拷贝到目标空间。
3、目标空间必须足够大,以确保能存放源字符串。
4、目标空间必须可变。
下面就用my_strcpy来模拟实现stcpy函数。
#include <stdio.h>
#include <assert.h>//assert的头文件
char* my_strcpy(char* dest,const char* src)//这里用const修饰所指向的源字符串,因为源字符串是
//常量字符串,不能被修改
{
char* ret = dest;
assert(dest);//断言源字符串和目标空间都不能为空指针
assert(src);
while (*dest++ = *src++)//一个字符串一个字符串的拷贝,遇到'\0'结束
{
;
}
return ret;//返回目标空间的起始地址
}
int main()
{
char arr1[20] = { 0 };
char arr2[] = "hello";
printf("%s", my_strcnpy(arr1, arr2));
return 0;
}
🥬🥬🥬🥬🥬🥬🥬🥬🥬🥬
以上是整个字符串的拷贝,如果我们不拷贝整个字符串,只拷贝字符串里面的几个字符,我们可以怎么做呢?接下来我们来看看str