|
发表于 2023-12-27 21:44:39
|
显示全部楼层
这段代码存在一些错误,让我们来逐个解决。
1. 缺少头文件
你的代码中没有包含所需的头文件。为了使用 strlen() 和 printf() 函数,你需要引入相应的头文件。- #include <stdio.h>
- #include <string.h>
复制代码
2. 字符串的声明和初始化
在 C 语言中,字符串是以字符数组的形式存储的。你需要用字符数组来声明和初始化字符串,而不是使用字符指针。- char str1[] = "hello";
- char str2[] = "123456";
复制代码 或者,你可以使用指针方式来声明字符串并分配内存。- char* str1 = "hello";
- char* str2 = "123456";
复制代码 请注意,这两种方式在使用时稍有不同。
3. 输入参数修改
在函数 my_strcat() 中,你使用了 char* 来表示输入参数 src 和 dst。然而,当你调用这个函数时,你传递的是指向字符数组的指针,而不是字符指针。因此,将这两个参数改为 char 数组指针类型。- void my_strcat(char* src, char* dst)
复制代码
4. 主函数拼写错误
将 `int mian()` 修改为 `int main()`。
综上所述,修正后的代码如下:- #include <stdio.h>
- #include <string.h>
- void my_strcat(char* src, char* dst)
- {
- int n = strlen(src);
- int i = 0;
- while (*(dst + i) != '\0')
- {
- *(src + n + i) = *(dst + i);
- i++;
- }
- *(src + n + i) = '\0';
- }
- int main()
- {
- char str1[] = "hello";
- char str2[] = "123456";
- my_strcat(str1, str2);
- printf("%s\n", str1);
- return 0;
- }
复制代码 这段代码现在应该能够正确运行,并输出 "hello123456"。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|