#include<bits/stdc++.h> using namespace std; int main(void) { int n; char a[105]; char answer[21][105]; int pt[21]; //读取逗号的位置 int cnt[21][105]; //读取空格的位置 int tot[21]; //cnt数组的下标 int len; //字符串长度 int judge[20]; //判断是否输出Skipped memset(judge,0,sizeof(judge)); memset(cnt,0,sizeof(cnt)); memset(tot,0,sizeof(tot)); memset(pt,0,sizeof(pt)); cin>>n; for(int i=1;i<=n;i++) { getchar(); cin.get(a,105); len=strlen(a); for(int j=0;j<=len-1;j++) { if(a[j]==',') pt[i]=j; if(a[j]==' ') cnt[i][++tot[i]]=j; } if(a[len-2]=='g'&&a[len-3]=='n' &&a[len-4]=='o'&&a[pt[i]-1]=='g'&& a[pt[i]-2]=='n'&&a[pt[i]-3]=='o'){ for(int j=0;j<=cnt[i][tot[i]-2];j++){answer[i][j]=a[j];} } else judge[i]++; } for(int i=1;i<=n;i++) { if(!judge[i]){ for(int j=0;j<=cnt[i][tot[i]-2];j++) { cout<<answer[i][j]; } cout<<"qiao ben zhong."<<endl; } else cout<<"Skipped"<<endl; } return 0; }
要注意的是,结尾处有英文的句号".",所以对len进行计数时需要多减一个1,其次第一次敲的时候看错题了,要押韵,所以还要建立pt数组来记录逗号","的位置,其他便是很正常的模拟,要注意把标记的数组初始值清零。
标签:cnt,pt,21,敲笨钟,--,memset,LH,int,sizeof From: https://www.cnblogs.com/KeviNieZenith/p/16789089.html