s2只有一行啊qwq@[lanqinglian](/space/show?uid=145131)
by 良辰、 @ 2019-02-17 15:47:14
@[良辰、](/space/show?uid=50604)
不是输入两次,两个循环是因为第一个找到后标记过了,如果不退出这个循环,标记会被覆盖
by lanqinglian @ 2019-02-17 15:50:37
但输入的数据s2只有一行qwq,你只能让输入流执行一次,要不肯定会锅哇唔qaq
by 良辰、 @ 2019-02-17 15:56:26
@[良辰、](/space/show?uid=50604)
cin不读空格,遇到空格他会认为以输入完一个数据
by lanqinglian @ 2019-02-17 15:58:54
我有点懵逼qwq(我太弱了
by 良辰、 @ 2019-02-17 16:01:40
```cpp
#include<bits/stdc++.h>
using namespace std;
int f, sum = 0;
string s1, s2;
int main(){
getline(cin, s1);
getline(cin, s2);
//转换大小写
transform(s1.begin(), s1.end(), s1.begin(), ::tolower);
transform(s2.begin(), s2.end(), s2.begin(), ::tolower);
//便于 find() 匹配
s1 = ' ' + s1 + ' ';
s2 = ' ' + s2 + ' ';
//使用 find() 进行查找,返回位置或 string::npos
if (s2.find(s1) != string::npos) {
f = s2.find(s1);
int k = s2.find(s1);
while (k != string::npos)
{
sum++;
k = s2.find(s1, k+1);
}
cout<<sum<<" "<<f;
} else {
cout << -1;
return 0;
}
return 0;
}
```
qwq我打的你看看惹
find()函数是STL里的
你可以查查看
by 良辰、 @ 2019-02-17 16:04:08
KMP也可以了解一下qaq
by 良辰、 @ 2019-02-17 16:16:24
@[良辰、](/space/show?uid=50604) 好的,Thanks♪(・ω・)ノ
by lanqinglian @ 2019-02-17 18:14:09