标题:谁可以帮我解释一下这段是什么意思???
只看楼主
在123321
Rank: 1
等 级:新手上路
帖 子:6
专家分:5
注 册:2013-1-21
结帖率:50%
已结贴  问题点数:20 回复次数:7 
谁可以帮我解释一下这段是什么意思???
void Count(char *str)
{
    int a[26]={0};
    if(str==NULL) return;
    for( ; *str; str++)
        if('a'<=*str && *str<='z')
            a[*str-'a']++;     //这里是什么意思??
        else if('A'<=*str && *str<='Z')
            a[*str-'A']++;    //这里是什么意思??
    for(int i=0; i<26; i++)
        cout<<char('a'+i)<<'='<<a[i]<<endl;//怎样才可以不输出等于o的字母啊?
}
void main( )
{
    Count("ABcabCz");
}
搜索更多相关主题的帖子: void return 
2013-01-28 01:32
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
得分:4 
if('a'<=*str && *str<='z')这句表示是统计范围是小写字母
a[*str-'a']++;     这句表示用数组a里面的元素来记录出现某个字母的次数,下标对应了这个字母相对于'a'的偏移量;你只要把'a'看成是ascii码就应该知道含义了;
下面是统计大写的,含义类似

因此,这个函数就是统计一个字符串中,出现某个大小写字母的个数,从a开始一直统计到z,由于大小写都是用a数组来记录,因此,对于大小写不敏感;


经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-01-28 07:54
在123321
Rank: 1
等 级:新手上路
帖 子:6
专家分:5
注 册:2013-1-21
得分:0 
if ^^^^else if^^^^不是要跳过第二条的吗,怎么会相加的呢?
2013-01-28 13:13
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
得分:0 
因为访问的都是a数组,修改的是同一个变量

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-01-28 21:15
tompobing
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:260
专家分:809
注 册:2012-12-9
得分:4 
数组a的下标分别表示和a,A的偏移量,a[i]的值统计出现的次数
2013-02-03 02:11
大米稀粥客
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:82
专家分:155
注 册:2013-1-8
得分:4 
学习
2013-02-03 15:00
不玩虚的
Rank: 9Rank: 9Rank: 9
来 自:四川
等 级:贵宾
威 望:10
帖 子:331
专家分:1301
注 册:2012-12-9
得分:4 
学习

同学习......同进步....你帮我......我帮你.....上善若水.....
2013-02-04 00:52
果沫
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:198
专家分:960
注 册:2013-1-30
得分:4 
a[*str-'a']和a[*str-'A']的自加运算
2013-02-04 12:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-397765-1-1.html




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

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