/*
* 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的值来搞定这个问题。于是字符串统计问题。。。搞定!