L1-059 敲笨钟 (20 分)
对n行样例边判断边输出,先遍历每个字符判断逗号和句号的前面3个字符是否为ong。是的话开始倒序遍历空格,将第三个空格的下标进行存储,然后正序遍历到存储位置,后面拼接上qiao ben zhong.,否则直接输出Skipped
#include#include using namespace std; int n; int main() { cin >> n; string s; getchar(); // 注意吸收回车 while(n--) { getline(cin, s); int flag1 = 0, flag2 = 0, leng = s.size(); for(int i = 0; i < leng; i++) { if(s[i] == ',' && s[i-1] == 'g' && s[i-2] == 'n' && s[i-3] == 'o') flag1 = 1; if(s[i] == '.' && s[i-1] == 'g' && s[i-2] == 'n' && s[i-3] == 'o') flag2 = 1; } if(flag1 && flag2) { int pos = -1, cnt = 0; for(int i = leng - 1; i >= 0; i--) { if(s[i] == ' ') cnt++; if(cnt == 3) { pos = i; break; } } for(int i = 0; i <= pos; i++) cout << s[i]; cout << "qiao ben zhong." << endl; } else cout << "Skipped" << endl; } return 0; }