请教:计算一个字符数组中a出现的次数(问题以解决,谢谢大虾们)
计算一个字符数组中a出现的次数下面是代码,但是就是算不出来,请大虾指点一下哪里错了
#include "stdio.h"
void main()
{
char chKidney[80],i=0,iCount=0;
printf("please input one char:\n");
for(i=0;i<80;i++)
scanf("%c",&chKidney[i]);
for(i=0;chKidney[i]<='\0';i++)
{
if(chKidney[i]='a')
iCount++;
}
printf("\n char 'a' appers %d times",iCount);
getch();
}
[[italic] 本帖最后由 ajax_liu 于 2007-12-15 18:15 编辑 [/italic]]
搜索更多相关的解决方案:
字符
----------------解决方案--------------------------------------------------------
int str_n_char(char * str, char ch)
{
int count = 0;
while(*str != '\0')
count += (*str++ == ch ? 1 : 0);
return count;
}
----------------解决方案--------------------------------------------------------
呃。。看不太懂哦
指针还没学。。郁闷。 ----------------解决方案--------------------------------------------------------
你把字符数组和字符串混淆了
scanf("%c",&chKidney[i]);这一句是读取字符,循环了80次,就是读取80个字符,然后保存在了字符数组中
这个仅仅是个字符数组,不是字符串,末尾没有'\0'
如果要读取字符串,可以用 gets(chKidney);
这样读取到数组里面的就是一个字符串了,会自动在末尾添加'\0'
这样才能通过和'\0'比较来判断是否字符串结束
还有这一句if(chKidney[i]='a')中间应该是两个等号
----------------解决方案--------------------------------------------------------
/*正确结果*/
#include "stdio.h"
void main()
{
char chKidney[10],i=0,iCount=0;
char *p;
p=chKidney;
printf("please input one char:\n");
for(i=0;i<10;i++)
chKidney[i]=getchar();
for(;*p!='\0';p++)
{
if(*p=='a')
iCount++;
}
printf("\n char 'a' appers %d times",iCount);
getch();
}
----------------解决方案--------------------------------------------------------
连续输入.
----------------解决方案--------------------------------------------------------
如果想把字符数组当字符串处理````
请先把你的数组的最后一个位置放上\0```
然后将数组长度减1```再使用
----------------解决方案--------------------------------------------------------
/*这个不用指针.*/
/*连续输入10 个要多改数组*/
#include "stdio.h"
void main()
{
char chKidney[10],i=0,iCount=0;
printf("please input one char:\n");
scanf("%s",chKidney);
for(i=0;chKidney[i]!='\0';i++)
{
if(chKidney[i]=='a')
iCount++;
}
printf("\n char 'a' appers %d times",iCount);
getch();
}
----------------解决方案--------------------------------------------------------
谢谢大家的帮助
谢谢xianshizhe111 你的代码我已经基本上看明白了,但是还有个问题想问一下
for(i=0;chKidney[i]!='\0';i++) 这行代码中
chKidney[i]!='\0' 可不可以写成 chKidney[i]<'\0' ?为什么?
----------------解决方案--------------------------------------------------------
它两个并不是比较大小关系只比较等与不等.
----------------解决方案--------------------------------------------------------