c语言问题,高手帮下忙吧~?type mismatch in parameter ✀s1✀ in call to ✀strcmp✀

2024-12-30 21:47:14
推荐回答(3个)
回答1:

strcmp是比较两个字符串是否相等
而c是字符所以不能比较

回答2:

type mismatch in parameter 's1' in call to 'strcmp'

类型不能搭配(变量“s1”被使用在“stramp”中)

直接解释过来就这意思

明白为什么错了不?

回答3:

错误分析:
1、strcmp(c,*(s+i))不能用一个字符和一个字符串比较,改成:c == *(s+i);

2、scanf("%s,%c",a,&c); 这里涉及到一个输入流缓存的问题%s接收一个字符串后,并不能接收你按回车输入到流中的那个换行符,而这个换行符直接被%c接收了,这样就会出现逻辑错误,改成:
scanf("%s",a);
getchar();// 用来接收那个换行符;
scanf("%c",&c);

***********************
修改后程序:
#include
#include
int chrn(char *s,char c);
void main()
{
char a[10],c;
scanf("%s",a);
getchar();
scanf("%c",&c);
printf("%c appeared %d time(s)",c,chrn(a,c));
}

int chrn(char *s,char c)
{
int n=0,i;
for(i=0;i<10;i++)
{
if(c == *(s+i))
n++;
}
return n;
}

若还有不明白请补充提问,
明白了请及时处理提问。