现在的位置: 首页 > 综合 > 正文

九度笔记之 统计字符

2013年12月05日 ⁄ 综合 ⁄ 共 1025字 ⁄ 字号 评论关闭

题目描述:

    统计一个给定字符串中指定的字符出现的次数。
输入:
    测试输入包含若干测试用例,每个测试用例包含2行,第1行为一个长度不超过5的字符串,第2行为一个长度不超过80的字符串。注意这里的字符串包含空格,即空格也可能是要求被统计的字符之一。当读到'#'时输入结束,相应的结果不要输出。
输出:
    对每个测试用例,统计第1行中字符串的每个字符在第2行字符串中出现的次数,按如下格式输出:
    c0 n0
    c1 n1
    c2 n2
    ... 
    其中ci是第1行中第i个字符,ni是ci出现的次数。
样例输入:
I
THIS IS A TEST
i ng
this is a long test string
#
样例输出:
I 2
i 3
  5
n 2
g 2

分析

利用 std::map

源码

#include <iostream>
#include <string>
#include <map>
void test1110(std::string q){
	std::map<char,int> cm;
	std::string line;
	getline(std::cin,line);
	for(std::string::size_type i = 0;i<line.size();i++){
		cm[line.at(i)]++;
	}
	for(std::string::size_type i = 0;i<q.size();i++){
		std::cout<<q.at(i)<<" ";
		if(cm.count(q.at(i))==0){
			std::cout<<"0";
		}else{
			std::cout<<cm[q.at(i)];
		}
		std::cout<<std::endl;
	}
	
}

int main()
{
	std::string q;
	getline(std::cin,q);
	while (q!="#") {
		test1110(q);
		getline(std::cin,q);
   }
	return 0;
}

资源下载

C++ Primer Fifth Edition 英文彩色带书签 http://download.csdn.net/detail/kingeasternsun/5529053
C++ Primer Plus (6th Edition)  英文原版 彩色带书签http://download.csdn.net/detail/kingeasternsun/5508691

抱歉!评论已关闭.