无法为内置功能执行因冲突类型而导致的程序

时间:2014-08-08 13:04:36

标签: c

每当我尝试编译程序时,它会显示函数strcat的错误冲突类型。请帮忙

main.c中:

    #include <stdio.h>
    #include "Q2.h"

    main()
    {
         char x[100], y[100];

         gets(x);
         gets(y);

         printf("%s",strcat(x,y));
     }

Q2.h:

char strcat(char a[100], char b[100])
{
    int i, j;

    while (a[i] != '\0')
    {
        i++;
    }

    while (b[j] != '\0')
    {
        a[i] = b[j];
        j++;
        i++;
    }

    return a[100];
}

2 个答案:

答案 0 :(得分:1)

好的,您的错误消息很容易解释: C不支持重载功能。

默认情况下,strcat() function接受两个指针(即char *strcat(char *dst, char *src)),其效果类似于您所写的内容。

根据您的编译器/ IDE(例如Microsoft Visual Studio),可能实际上包含/定义了一些标准标头或函数,即使您没有明确包含它们。

要解决此问题,请切换到C ++或重命名您自己的函数(或尝试避免包含 string.h ,如果您自己包含它)。

答案 1 :(得分:0)

在您的代码中包含#include <string.h>

http://www.cplusplus.com/reference/cstring/strcat/