| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3899 人关注过本帖
标题:请教:计算一个字符数组中a出现的次数(问题以解决,谢谢大虾们)
只看楼主 加入收藏
ajax_liu
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-6-16
收藏
 问题点数:0 回复次数:14 
请教:计算一个字符数组中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]]
搜索更多相关主题的帖子: 字符 
2007-12-15 16:47
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
int str_n_char(char * str, char ch)
{
    int count = 0;
    while(*str != '\0')
        count += (*str++ == ch ? 1 : 0);
    return count;
}

—>〉Sun〈<—
2007-12-15 16:56
ajax_liu
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-6-16
收藏
得分:0 
呃。。看不太懂哦
指针还没学。。郁闷。

2007-12-15 17:03
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
你把字符数组和字符串混淆了

scanf("%c",&chKidney[i]);这一句是读取字符,循环了80次,就是读取80个字符,然后保存在了字符数组中

这个仅仅是个字符数组,不是字符串,末尾没有'\0'

如果要读取字符串,可以用 gets(chKidney);

这样读取到数组里面的就是一个字符串了,会自动在末尾添加'\0'

这样才能通过和'\0'比较来判断是否字符串结束

还有这一句if(chKidney[i]='a')中间应该是两个等号

从BFS(Breadth First Study)到DFS(Depth First Study)
2007-12-15 17:08
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
/*正确结果*/
#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();
}
2007-12-15 17:10
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
连续输入.
2007-12-15 17:12
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
如果想把字符数组当字符串处理````
请先把你的数组的最后一个位置放上\0```
然后将数组长度减1```再使用

女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-12-15 17:13
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
/*这个不用指针.*/
/*连续输入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();
}
2007-12-15 17:21
ajax_liu
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-6-16
收藏
得分:0 
谢谢大家的帮助
谢谢xianshizhe111  
你的代码我已经基本上看明白了,但是还有个问题想问一下
 for(i=0;chKidney[i]!='\0';i++)   这行代码中
  chKidney[i]!='\0' 可不可以写成 chKidney[i]<'\0'  ?为什么?

2007-12-15 17:40
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
它两个并不是比较大小关系只比较等与不等.
2007-12-15 17:53
快速回复:请教:计算一个字符数组中a出现的次数(问题以解决,谢谢大虾们)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027645 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved