我是C的新手,我正在尝试编写一个简单的程序来连接两个字符串.在我的Linux机器上运行它时,我得到以下异常:
test.c:12:10:错误:'strcat'的冲突类型
你能帮我理解我在这里缺少的东西:
#include<stdio.h>
#include<string.h>
void main() {
// string concatenation
char str1[] = {'S', 'h'};
char str2[] = {'X', 'y'};
strcat(str1, str2);
}
void strcat(char str1[], char str2[]) {
int index;
int str1_length = strlen(str1);
for(index=0; index<strlen(str2); index++) {
str1[index + str1_length] = str2[index];
}
}
Run Code Online (Sandbox Code Playgroud)
您strcat没有标准签名:
char *strcat(char *dest, const char *src);
Run Code Online (Sandbox Code Playgroud)
如果要包含,则需要使其匹配string.h.或者,只需为您的实现提供不同的名称(my_strcat例如).
您可能还希望null终止测试字符串 - strlen否则这些调用会给您带来非常有趣的结果.此外,为避免写入超过第一个字符串分配的内存的末尾(从而导致未定义的行为),请确保为其提供足够的空间以适应末尾的第二个字符串.