第13周项目5-字符串操作--字符统计

/*   
* Copyright (c) 2014, 烟台大学计算机学院   
* All rights reserved.   
* 文件名称:test.cpp   
* 作    者:刘畅   
* 完成日期:2014 年 11  月  24  日   
* 版 本 号:v1.0   
*   
* 问题描述:编程序,完成统计字符功能;   
* 输入描述:输入字符串;   
* 程序输出:输出相应的要求.

(1)统计字母'A'出现的次数;

#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
   char str[50];
   int i=0,n=0;
   cout<<"输入字符串:";
   gets(str);
   while (str[i]!='\0')
   {
       if (str[i]=='A')
        n++;
       i++;
   }
   cout<<"其中字母A出现的次数为"<<n<<endl;
   return 0;
}
 

运行结果:


(2)统计字符串中(大/小写)字母的个数;

#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
   char str[50];
   int i=0,n=0,m=0;
   cout<<"输入字符串:";
   gets(str);
   while (str[i]!='\0')
   {
       if (str[i]>'A'&&str[i]<'Z')
        n++;
       else if(str[i]>'a'&&str[i]<'z')
       m++;
       i++;
   }
   cout<<"其中大写字母出现的次数为"<<n<<endl;
   cout<<"其中小写字母出现的次数为"<<m<<endl;
   return 0;
}

运行结果:


(3)统计每一个数字字符出现的次数;

#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
    char str[50];
    int a[10]= {0};
    int i=0;
    cout<<"输入字符串:";
    gets(str);
    while (str[i]!='\0')
    {
        if (str[i]>'0'&&str[i]<'9')
            a[str[i]-'0']++;
        i++;
    }
    for(i=0; i<10; ++i)
        cout<<"其中"<<i<<"出现的次数为"<<a[i]<<endl;
    return 0;
}

运行结果:


(4)统计每一个字母出现的个数;

#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
    char str[50];
    int a[26]= {0};
    int i=0;
    cout<<"输入字符串:";
    gets(str);
    while (str[i]!='\0')
    {
        if (str[i]>='A'&&str[i]<='Z')
            a[str[i]-'A']++;
        i++;
    }
    for(i=0; i<26; ++i)
        cout<<"其中"<<char(i+65)<<"出现的次数为"<<a[i]<<endl;
    return 0;
}

运行结果:



学习心得:

由于有模板,前两个很轻松就搞定了,但在统计数字次数的时候,我本来选择用switch语句统计的,但突然觉得如果要统计很多值的话,比如第四个的26个字母,那就不大合适了,于是我有个想法,在switch里面加for语句,可惜行不通委屈,于是问贺老师怎么做,贺老师给了提示,用ASCII的值来搞定这个问题。于是字符串统计问题。。。搞定!大笑

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值