Deadwood_ 2017-01-01 12:23 采纳率: 0%
浏览 1146
已采纳

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

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条回答 默认 最新

  • threenewbee 2017-01-01 12: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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?