文章
3
粉丝
0
获赞
7
访问
242
std::string 提供了 substr()函数专门用于截取子串,类似于python的字符切片

| erase() | 删除指定位置的字符或子字符串。 | str.erase(pos, length); |
代码如下:
#include <bits/stdc++.h>
using namespace std;
int main() {
string S;
cin >> S;
int len = S.length();
vector<int> pos;
for(int i = 0; i < len - 2; i++)
{
if(S.substr(i, 3) == "gzu" || S.substr(i, 3) == "Gzu" // 列举出所有情况
|| S.substr(i, 3) == "gZu" || S.substr(i, 3) == "gzU"
|| S.substr(i, 3) == "GZu" || S.substr(i, 3) == "GzU"
|| S.substr(i, 3) == "gZU" || S.substr(i, 3) == "GZU")
{
pos.push_back(i); // 记录所有待删除字串在母串中的位置
}
}
for(size_t j = 0; j < pos.size(); j++)
{
S.erase(pos[j] - j*3, 3); // 删除位置应该随母串变短而动态变化
}
cout << S;
return 0;
}
登录后发布评论
暂无评论,来抢沙发