hdu1860-统计字符出现次数问题 string.find()
2016-07-21 09:50
471 查看
1860
Sample Input
I
THIS IS A TEST
i ng
this is a long test string
#
Sample Output
I 2
i 3
5
n 2
g 2
注:第2个测试用例中,空格也是被统计的字符之一。
string 类提供了 6 种查找函数,每种函数以不同形式的 find 命名。 这些操作全都返回 string::size_type
类型的值,以下标形式标记查找匹配所发生的位置; 或者返回一个名为 string::npos 的特殊值,说明查找没有匹配。string 类将
npos 定义为保证大于任何有效下标的值。
Sample Input
I
THIS IS A TEST
i ng
this is a long test string
#
Sample Output
I 2
i 3
5
n 2
g 2
注:第2个测试用例中,空格也是被统计的字符之一。
string 类提供了 6 种查找函数,每种函数以不同形式的 find 命名。 这些操作全都返回 string::size_type
类型的值,以下标形式标记查找匹配所发生的位置; 或者返回一个名为 string::npos 的特殊值,说明查找没有匹配。string 类将
npos 定义为保证大于任何有效下标的值。
#include <iostream> #include<string> using namespace std; int main() { string str1,str2; int sum,j; while (getline(cin,str1) && str1!="#") { getline(cin,str2); for (int i = 0; i < str1.length(); i++) { sum = 0; j = 0; while(str2.find(str1[i],j)!=string::npos) //从j开始找,直到在str2找到一个str1[i]便返回str1[i]在str2中的位置,不再继续 { sum++; j = str2.find(str1[i],j)+1; //若此处j++,假设输入abcdef检测e的次数时,则在j到达e所在的位置前e已经被统计了5次了 } cout<<str1[i]<<" "<<sum<<endl; } } return 0; }
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- android string.xml文件中的整型和string型代替
- Android java 与 javascript互访(相互调用)的方法例子
- android上改变listView的选中颜色
- String.intern
- Prototype源码浅析 String部分(二)
- Ruby中的String对象学习笔记
- Redis02 使用Redis数据库(String类型)全面解析
- PostgreSQL ERROR: invalid escape string 解决办法
- 浅谈C++中的string 类型占几个字节
- 标准C++类string的Copy-On-Write技术
- C++实现string存取二进制数据的方法
- C#中string和StingBuilder内存中的区别实例分析
- 详解C++中实现继承string类的MyString类的步骤
- PHP STRING 陷阱原理说明
- c#中 String和string的区别介绍
- C#实现的图片、string相互转换类分享
- asp.net String.IsNullOrEmpty 方法
- JavaScript中字符串(string)转json的2种方法
- C#中string用法实例详解