69,369
社区成员
发帖
与我相关
我的任务
分享
#include "stdio.h"
#include "string.h"
int main()
{
char c[100],a,b,n,i,f;
printf("输入一行字符\n");
scanf("%s",c);
fflush(stdin);
printf("指定字符\n");
scanf("%c",&a);
fflush(stdin);
n = 0;
for(i=0;i<=strlen(c);i++)
{
if (c[i] == a)
++n;
}
printf("%d\n",n);
return 0;
}
fflush(stdin)清空输入缓冲区。
scanf("%d",&a);
scanf("%c",&c);
经常如果这种情况的话,第一次输入的回车可能会被第二次输入操作所捕捉,这个的作用就是清空缓冲,这样就不会出现这种情况了。
#include "stdio.h"
#include "string.h"
int main()
{
char c[100],a;
int n=0,i;
printf("输入一行字符\n");
scanf("%s",c);
printf("指定字符\n");
//getchar();
fflush(stdin); //要清理缓冲区 getchar()也可以的
scanf("%c",&a);
for(i=0;i<=strlen(c);i++)
{
if (a==c[i])
n++; //此处不是n=n+1
}
printf("%d\n",n);
return 0;
}
scanf("%s",c);
改成
scanf("%s%*c", c);
for(i=0;i<=strlen(c);i++)
改成
for(i=0;i<strlen(c);i++)