统计字母个数、单词统计问题

统计字母个数

给定一段文章,请输出每个字母出现的次数

输入

只有一组输入数据,文件少于1000行。在文章中除最后一个字符外,只有大小写字母、空格和换行符,没有另外的标点、数字。该文章以’#’结尾。

输出

输出格式为“C A”,C为’a’..’z’中的字母,A为出现次数,C和A之间空一格

样例输入

here is the input
this is the article#

样例输出

a 1
b 0
c 1
d 0
e 5
f 0
g 0
h 4
i 5
j 0
k 0
l 1
m 0
n 1
o 0
p 1
q 0
r 2
s 3
t 5
u 1
v 0
w 0
x 0
y 0
z 0
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
#define endl '\n'
int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    map<char,int> m; 
    string b;
     getline(cin, b, '#'); 
// istream& getline ( istream &is , string &str , char delim );delim 终结符,遇到该字符停止读取操作,不写的话默认为回车。
    int i=0;
    while(i < b.length()){ 
        ++m[tolower(b[i])];//tolower函数将大写字母转换为小写字母,这里根据题目意思可知不论输入的文章是大写还是小写,最后统计时都将其转换为小写字母统计
        i++;
    }
    for(char i='a';i<='z';i++){ 
        cout<<i<<" "<<m[i]<<endl;
    }
    return 0;
}

注意:
1、当getline与whlie一起使用的时候,即while(getline(cin,str))是一个死循环,只有当按Ctrl+z或键入EOF才会结束。
2、当使用getline的时候,如果前面用cin输入东西,则必须输入cin.get()吃掉回车符

单词统计问题

HH公司(huge-hard)最近计划出品一个字处理软件。软件基本功能已经完成,但还缺少一个单词统计的功能,你的任务就是为该公司写一段程序,完成统计功能。
需要统计的信息有两项:出现单词的个数和单个单词出现的次数。

输入

输入为一行字符串,即要统计的文本。

输出

输出由若干行组成,第一行是一个整数,表示单词的个数,从第二行开始,每行由字符串、冒号、整数组成,其中字符串是一个出现在文本中的单词,整数则是该单词在文本中出现的次数。

样例输入

to know everything is to know nothing

样例输出

7
everything:1
is:1
know:2
nothing:1
to:2
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
#define endl '\n'
int main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);
	map<string,int>m;
	string st1;
	int count=0;
	while(cin>>st1){
		++m[st1];
		count++;
	}
	cout<<count<<endl;
	for(auto st:m){//这里auto使用的是pair类型
		cout<<st.first<<":"<<st.second<<endl;
	}
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值