strcpy和my_strcpy有什么区别?
时间: 2023-11-28 21:45:26 浏览: 83
根据提供的引用[1],可以看出strcpy和my_strcpy的区别在于my_strcpy是自己实现的字符串复制函数,而strcpy是C语言标准库中提供的字符串复制函数。my_strcpy函数的实现与strcpy函数的实现类似,都是将源字符串中的字符一个一个地复制到目标字符串中,直到遇到'\0'为止。但是,my_strcpy函数需要手动传入目标字符串和源字符串的地址,而strcpy函数则直接使用两个字符串的指针作为参数。此外,my_strcpy函数中使用了assert函数来确保传入的参数不为空指针,而strcpy函数没有这个保护措施。
下面是一个使用strcpy函数的例子:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str1[20] = "hello";
char str2[20];
strcpy(str2, str1);
printf("%s\n", str2); // 输出:hello
return 0;
}
```
下面是一个使用my_strcpy函数的例子:
```c
#include <stdio.h>
#include <assert.h>
#include <string.h>
void my_strcpy(char* aim, const char* src) {
assert(aim != NULL && src != NULL);
while (*src != '\0') {
*aim = *src;
aim++;
src++;
}
*aim = '\0';
}
int main() {
char str1[20] = "hello";
char str2[20];
my_strcpy(str2, str1);
printf("%s\n", str2); // 输出:hello
return 0;
}
```
阅读全文