天天看點

敲笨鐘(20分)

敲笨鐘 (20分)

  • 微網誌上有個自稱“大笨鐘V”的家夥,每天敲鐘催促碼農們愛惜身體早點睡覺。為了增加敲鐘的趣味性,還會糟改幾句古詩詞。其糟改的方法為:去網上搜尋壓“ong”韻的古詩詞,把句尾的三個字換成“敲笨鐘”。例如唐代詩人李賀有名句曰:“尋章摘句老雕蟲,曉月當簾挂玉弓”,其中“蟲”(chong)和“弓”(gong)都壓了“ong”韻。于是這句詩就被糟改為“尋章摘句老雕蟲,曉月當簾敲笨鐘”。
  • 現在給你一大堆古詩詞句,要求你寫個程式自動将壓“ong”韻的句子糟改成“敲笨鐘”。

輸入格式:

  • 輸入首先在第一行給出一個不超過 20 的正整數 N。随後 N 行,每行用漢語拼音給出一句古詩詞,分上下兩半句,用逗号 , 分隔,句号 . 結尾。相鄰兩字的拼音之間用一個空格分隔。題目保證每個字的拼音不超過 6 個字元,每行字元的總長度不超過 100,并且下半句詩至少有 3 個字。

輸出格式:

  • 對每一行詩句,判斷其是否壓“ong”韻。即上下兩句末尾的字都是“ong”結尾。如果是壓此韻的,就按題面方法糟改之後輸出,輸出格式同輸入;否則輸出 Skipped,即跳過此句。

輸入樣例:

5

xun zhang zhai ju lao diao chong, xiao yue dang lian gua yu gong.

tian sheng wo cai bi you yong, qian jin san jin huan fu lai.

xue zhui rou zhi leng wei rong, an xiao chen jing shu wei long.

zuo ye xing chen zuo ye feng, hua lou xi pan gui tang dong.

ren xian gui hua luo, ye jing chun shan kong.

輸出樣例:

xun zhang zhai ju lao diao chong, xiao yue dang lian qiao ben zhong.

Skipped

xue zhui rou zhi leng wei rong, an xiao chen jing qiao ben zhong.

Skipped

Skipped

注意

  1. getchar()寫在輸入n後邊;因為要接收回車
  2. for(j=0;a[j]!=’,’;j++) ;用來尋找’,'所在位置下标
  3. substr(a,b);a為開始的坐标,b為截取的長度,從0截取到k(倒數第三個空格前)

程式代碼

#include<cstdio>
#include<iostream>
#include<string.h> 
using namespace std;
int main(){
    int i,j,n;
    cin>>n;
    getchar();
    for(i=0;i<n;i++){
    	 string a;
         getline(cin,a);
         int len=a.length();
         int f=0;
         for(j=0;a[j]!=',';j++)
		 ;
         if((a[j-1]=='g')&&(a[j-2]=='n')&&(a[j-3]=='o')&&(a[len-2]=='g')&&(a[len-3]=='n')&&(a[len-4]=='o')){
		 	f=1;
		 } 
         int k,sum=0;
         if(f==1){
         for(k=len-1;k>0;k--){
             if(a[k]==' ')
                sum++;
             if(sum==3)
                break;
              }
             a=a.substr(0,k);
             cout<<a<<" qiao ben zhong."<<endl;
        }else 
             cout<<"Skipped"<<endl;
    }
     return 0;
}
           

繼續閱讀