strcmp是比较两个字符串是否相等
而c是字符所以不能比较
type mismatch in parameter 's1' in call to 'strcmp'
类型不能搭配(变量“s1”被使用在“stramp”中)
直接解释过来就这意思
明白为什么错了不?
错误分析:
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;
}
若还有不明白请补充提问,
明白了请及时处理提问。