2 deadwood Deadwood_ 于 2017.01.01 20:23 提问

计算输入字母的个数,代码如下,求详细解释

int Count(int cou[]) //计算输入的字母的个数
{
char word;
char letter[27]={' ','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o', 'p','q','r','s','t','u','v','w','x','y','z'};
fstream SourceFile;
SourceFile.open("SourceFile.txt",ios::in);
if (!SourceFile)
{
cout<<"Can't open this file"<<endl;
}
while (!SourceFile.eof())

    {
        SourceFile.get(word);
        if (word>='A'&&word<='Z')
        {
            word=word+32;
        }
        int i=word-96;
        cou[i]++;
    }
    SourceFile.close();
    cout<<"letter"<<'\t'<<'\t'<<"频率为"<<endl;
        for (int j=1;j<=26;j++)
        {
            if (cou[j]!=0)
            {
                cout<<letter[j]<<'\t'<<'\t'<<cou[j]<<endl;
            }
        }
        cout<<"读入完事儿!"<<endl;

return 0;

}

1个回答

caozhy
caozhy   Ds   Rxr 2017.01.01 20:37
已采纳
 int Count(int cou[]) //计算输入的字母的个数
{
char word;
char letter[27]={' ','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o', 'p','q','r','s','t','u','v','w','x','y','z'}; //纯属多余
fstream SourceFile;
SourceFile.open("SourceFile.txt",ios::in); 从SourceFile.txt读取
if (!SourceFile)
{
cout<<"Can't open this file"<<endl;
}
while (!SourceFile.eof()) 循环直到文件结束
    {
        SourceFile.get(word);
        if (word>='A'&&word<='Z') //如果是大写字母,统一转换为小写
        {
            word=word+32; //32是 'a' - 'A' ascii差
        }
        int i=word-96; // 96是'a'的ascii
        cou[i]++; // cou保存你对应字母的统计数字,+1
    }
    SourceFile.close(); //关闭文件
    cout<<"letter"<<'\t'<<'\t'<<"频率为"<<endl; //输出
        for (int j=1;j<=26;j++) //依次输出a~z字符的出现频率
        {
            if (cou[j]!=0) //如果没有这个字母出现,就不输出
            {
                cout<<letter[j]<<'\t'<<'\t'<<cou[j]<<endl; //letter[j]可以用 (char)('A' + i) 代替
            }
        }
        cout<<"读入完事儿!"<<endl;

return 0;
}
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
输入读入一个String 序列,计算元音字母的个数,然后再顺序输出--C++
#include #include "String.h" int main() { int aCnt = 0, eCnt = 0, iCnt = 0, oCnt = 0, uCnt = 0, theCnt = 0, itCnt = 0, wdCnt = 0, notV
记录输入的字母个数(C++ code)
C语言作业,供初学者参考#include void main(){  char c;  int count=0;  cout  while((c=cin.get())!=/n)  {    if(c>=a&&c=A&&c      count++;  }  cout}#include int mm(char x[]);void main(){  char c[100];  cin.
任输入三个数,求得平均值,平均值程序(VB6.0源代码编写Function ave(ByVal a As Double,
任输入三个数,求得平均值,平均值程序(VB6.0源代码编写Function ave(ByVal a As Double, ByVal b As Double, ByVal c As Double) As Double ave = (a + b + c) / 3 End Function Private Sub Command1_Click() Text4 = ave(Val(Text1), Val(Text2), Val(Text3)) End Sub
求一个字符串中大写字母的个数
题目描述 找出给定字符串中大写字符(即’A’-‘Z’)的个数 接口说明 原型:int CalcCapital(String str); 返回值:int 输入描述: 输入一个String数据 输出描述: 输出string中大写字母的个数 算法实现:package com.husweijishi.suanfa;import java.util.Scanner;/** * 统计大写字母
java练习题---String类之求给定字符串中大小写字母的个数
//        1: 编写一个程序,输出一个字符串中的大写英文字母数,小写英文字母数以及非英文字母数。 public class 练习 { public static void main(String[] args) { String str = "JHKKkj%^&fnn7868(u89%^&T56yuvy8sa7d678&*^&*^%^%";//随机输入一段字符 i
【c++程序】计算字符个数
//********************************************** //输入:一个有字母以及空格组成的字符串和一个字符 //输出:该字符串中有该字符的个数,不包括大小写。 //Edited By Zhaoqilu on 2016-6-14 //On the Harbin Engineering Univerity #include using namespace st
键盘输入20个数的累加
上机目的:解决键盘输入的数的累加 上机任务:学会这个类型的编程 /* * Copyright (c) 2011, 烟台大学计算机学院 * All rights reserved. * 作 者:王 飞 * 完成日期:2012 年 11月 1日 * 版 本 号:v1.0 * 输入描述: 设置程序解决键盘输入20个数的和 * 问题描述:用循环来
OJ刷题之《函数模板--求n个数之和》
题目描述 利用函数模板求4个数的和。 部分代码已给定如下,只需要提交缺失的代码。 #include using namespace std; /*   补充缺少代码 */ int main() {     double result;     unsigned char c1,c2,c3,c4;     cin>>c1>>c2>>c3>>c4;     result =
计算字符串中的字母的个数
#include int main() {      char str[100];     int i,num=0;     gets(str);     for(i=0;str[i]!='\0';i++)     {          if(str[i]>='A'&&str[i]='a'&&str[i]             num++;             }  
C++上机报告 输入英文找出元音字母的个数(文章结束用$表示)
上机内容:输入一段英文统计元音字母的个数 上机目的:锻炼思维能力 我的程序: /* * 程序的版权和版本声明部分: * Copyright (c) 2011, 烟台大学计算机学院 * All rights reserved. * 文件名称:1.cpp * 作 者:陆文飞 * 完成日期:2012 年 9 月 16 日 * 版 本 号