c语言问题,请帮忙解疑!!

错误列表中显示: error C2664: “ziziFu”: 不能将参数 1 从“char [20]”转换为“char”c 是什么意思?求解释

完整代码如下:

#include<stdio.h>
#include<string.h>
int ziziFu(char str,char c);
int main()
{
    char str_1[20];
    char m;
    int n;
    printf("输入我想统计的一个子字符:");
    m=getchar();
    printf("输入一个字符串:");
    scanf("%s",str_1);
    n=ziziFu(str_1,m);
    printf("%d",n);
    return 0;
}
int ziziFu(char str[],char c)
{
    int p=0;
    int i=0;
    for(i=0;i < strlen(str);i++)
    {
        if(str[i] == c)
           p++;
    }
        return p;
}
阅读 2.4k
1 个回答

就是字面意思. 你声明处写成了这样int ziziFu(char str,char c);. 调用这个函数的地方是看不到下面的定义的, 所以只找到了这个错误的声明. 参数自然不匹配.
应该把声明处改正成int ziziFu(char str[],char c);

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进