int my_strcpy(const char *str) { assert(str); int count = 0; while (*str != "\0") { count++; str++; } } int main() { char arr1[] = "wadwarfwrwrw"; char arr2[] = "hahahiehei"; my_strcpy(arr1, arr2); printf("%s\n", arr1); return 0; }
时间: 2024-04-08 20:30:41 浏览: 128
char str[] 与 char *str的区别详细解析
代码中存在一些问题,首先是`my_strcpy`函数的返回类型应该为`void`,因为该函数没有返回值。其次,在`while`循环中,应该使用单引号`' '`来表示字符的结束符,即`*str != '\0'`。此外,`my_strcpy`函数只接受一个参数,而在`main`函数中却传入了两个参数。下面是修改后的代码:
```c
#include <stdio.h>
#include <assert.h>
void my_strcpy(char *dest, const char *src)
{
assert(dest && src);
int count = 0;
while (*src != '\0')
{
*dest++ = *src++;
count++;
}
*dest = '\0';
}
int main()
{
char arr1[100] = "wadwarfwrwrw";
char arr2[] = "hahahiehei";
my_strcpy(arr1, arr2);
printf("%s\n", arr1);
return 0;
}
```
这样修改后,`my_strcpy`函数会将`arr2`的内容复制到`arr1`中,并输出结果为"hahahiehei"。
阅读全文