codevs 1131 统计单词数
Posted hxh88
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了codevs 1131 统计单词数相关的知识,希望对你有一定的参考价值。
#include<iostream> #include<string> using namespace std; int main() { string s, s0; getline(cin, s0);//short getline(cin, s); for (int i = 0; i < s.length(); i++) s[i] = tolower(s[i]); for (int i = 0; i < s0.length(); i++) s0[i] = tolower(s0[i]); int k1 = s.length(); int k2 = s0.length(); s = " " + s + " "; s0 = " " + s0 + " "; int pos = s.find(s0); int cnt = 0; int k =pos; while (k>0) { cnt++; k= s.find(s0, ++k); } if (!cnt) cout << -1 << endl; else cout << cnt << " " << pos<< endl; }
题目解释:
匹配字符串位置与统计个数,就是要注意空格的处理
一个简单的字符串处理功能,但是自己基础不牢。很多地方做得迷糊了。
比如字符间间隔符号是空格,没想到可以在字符串首尾添加空格来处理。
还有就是while(k)的真假判断,只有k为0为假的,其他的,例如1或-1都会是为真的。
我判断到int k=s.find(s,++k).其实返回的是一个无穷大的数,int没法存,就是变成了-1.
另外注意的点:
getline(cin,str);
注意这个函数可以读取到回车结束,可以把空格也一起输入到字符串函数中。
以上是关于codevs 1131 统计单词数的主要内容,如果未能解决你的问题,请参考以下文章