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;
}

相关