问题及代码:
/*
*Copyright (c)2014,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:calculate.cpp
*作 者:单昕昕
*完成日期:2014年11月24日
*版 本 号:v1.0
*
*问题描述:定义一个数组统计字符数组中每一个大小写字母出现的次数。
*程序输出:字符数组每一个大小写字母出现的次数。
*/
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
char str[50],m='A',n='a';
int a[52]= {0};
int i;
cout<<"输入字符串:";
gets(str);
for(i=0; str[i]!='\0'; ++i)
{
if(str[i]>='A'&&str[i]<='Z') //统计大写字母
a[str[i]-'A']++;
if(str[i]>='a'&&str[i]<='z') //统计小写字母
a[str[i]-'G']++; //这句很重要!!!要保证a是从第27个开始计数的!!!
}
for(i=0; i<26; ++i)
{
cout<<"大写字母"<<char (m+i)<<"出现的次数为:"<<a[i]<<endl; //强制改变数据类型为char
}
cout<<endl;
for(i=0; i<26; ++i)
{
cout<<"小写字母"<<char (n+i)<<"出现的次数为:"<<a[i+26]<<endl; //a是在Z之后,所以要从第27个输出
}
return 0;
}
运行结果:
知识点总结:
统计字符数组中每一个大小写字母出现的次数。主要是要注意a在Z之后。
学习心得:
一开始a[str[i]-'G']++;这句算的不对,后来在运行的时候发现出现错误然后修改的。
一定要记住a与Z的关系!