解题思路:用bool型变量判断上句和下句是否为ong结尾的,如果是则找到逆序字符串数组第三个空出现的下标,进行字符串替换即可,如果上句和下句不是以ong结尾的,则输出Skipped
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
getchar();
for(int i=1;i<=n;i++){
int index=0;
bool first=false,last=false;
string s;
getline(cin,s);
for(int i=0;i<s.size();i++){
if(s[i]==','){
if(s[i-1]=='g'&&s[i-2]=='n'&&s[i-3]=='o')
first=true;
}
if(s[i]=='.'){
if(s[i-1]=='g'&&s[i-2]=='n'&&s[i-3]=='o')
last=true;
}
}
if(last&&first){
for(int j=s.size()-1;j>=0;j--){
if(s[j]==' ')
index++;
if(index==3){
s.replace(j+1,s.size()-j-1,"qiao ben zhong.");
break;
}
}
cout<<s<<endl;
}
else
cout<<"Skipped"<<endl;
}
}
运行结果: