输入一行以回车符结束的字符串(少于80个字符),再输入一个字符,统计并输出该字符中字符串中出现的次数

#include<stdio.h>
int main(void)
{
int count,i;
char str[80];
char a;
printf("Please input a string:");
scanf("%s",str);
printf("Please input another string:");
scanf("%c",&a);
i=0;
while((str[i]=getchar())!='\n')
i++;
str[i]='\0';
count=0;
for(i=0;i!='\0';i++)
if(str[i]=='a')
count++;
printf("count=%d\n",count);
}
return 0;
}
我写的程序运行不对,求大神一一讲解我出现的错误。

要回车结束,保证你的字符串空间足够大,或者一个个字符读取直到最大上限或 回车符,如果用gets,回车符本来就是它的结束符,这个要看你的空间足够大,不然会出问题,十六进制的数,需要范围规定,~~~不然太大了,你转换10进制,~~~ 十六进制字符后,如果16进制 有0x 代数字表示,那么就判断这个,如果 纯数字,那就简单了~~~,如果有0x,就判断,0x然后后面连续数字,直到非数字,是否有0x后面无数字???
0x5,如果0x且后面是个数字,那么把这个存入新的字符串,连续的数字一起,直到非数字,这个还有要考虑就是 0x520x5 这个东西,如果有这情况,那么读到数字0需要特别判断下,~~~还有就是那个x是否 大小写通用, 0x 5 是否可以包含空格??,16进制是否有其他表示方法?
不知道是判断一个 16进制还是多个,一个简单,多个,麻烦点把,反正尽量把可能都考虑了,
呵呵, 一点见解,说错了~~请指教 呵呵
温馨提示:答案为网友推荐,仅供参考
相似回答