问题及代码:
/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:刘佳琦
* 完成日期:2014年 11 月 24 日
* 版 本 号:v1.0
*
* 问题描述:统计每一个字母出现的次数
* 输入描述:无
* 程序输出:每一个字母出现的个数
*/
#include<iostream>
using namespace std;
int main()
{
char str[100]= {"fgfhffdrgdjrtdthj"};
int i,a[26]= {0}; //定义一个新的数组用于储存'a'到'z'的个数的量,初始量都为0
for(i=0; str[i]!='\0'; ++i)
{
if(str[i]>='a'&&str[i]<='z')
a[str[i]-'a']++; //若str[i]为'a',a[0]将增加;也可以写作a[str[i]-97]++
}
cout<<"\""<<str<<"\" 中各小写字母出现的次数是: "<<endl;
for(i=0; i<26; ++i)
cout<<"\'"<<char(i+97)<<"\'---"<<a[i]<<endl;
return 0;
}
运行结果:
学习心得:刚开始想用switch语句做,后面经提醒才了解到一种新方法,更加简便
知识点总结:创建一个新的数组用来储存你所要的数值,把它放到for循环里,若等于某个字母,某个字母对应的数组的值将增加,比以前的switch语句更加简单,当输出要用一些特殊字符的时候前面要加\。