#include <stdio.h>
#include <assert.h>
char* my_strcpy(char* dest, const char* src)//const放在指针变量的*左边时,修饰指针指向的内容,也就是说:不能通过指针来改变指针指向的内容
//但是指针变量本身的内容可以改变
{ //const放在指针变量的*右边时,修饰指针变量本身,指针变量不能修改,但是指针指向的内容,
char* ret = dest; //可以通过指针改变
assert(dest != NULL);//判断dest和srt是否为空指针
assert(src != NULL);//assert断言,assert括号内容为假,则报错
while (*dest++ = *src++)// /0的Ascil码值为0,所以当dest取到/0时停止
{
;
}
return ret;
}
int main()
{
char arr1[] = "##########";
char arr2[] = "cui";
printf("%s\n", my_strcpy(arr1, arr2));
//strcpy 字符串拷贝
return 0;
}
const放在指针变量的*左边时,修饰指针指向的内容,也就是说:不能通过指针来改变指针指向的内容,但是指针变量本身的内容可以改变
const放在指针变量的*右边时,修饰指针变量本身,指针变量不能修改,但是指针指向的内容,
可以通过指针改变
strcpy字符串拷贝
1.源字符串必须以
'\0'
结束。
2.会将源字符串中的
'\0'
拷贝到目标空间。
3.目标空间必须足够大,以确保能存放源字符串。
4.目标空间必须可变。