题目链接:hnu11510 本题要注意的地方:有可能前面的不用引号,后面的用引号。 代码: #include<iostream> #include<vector> using namespace std; int main() { //freopen("hnu11510in.txt","r",stdin); //freopen("hnu11510out.txt","w",stdout); __int64 n,m,t=1; int cnt=0; bool flag,flag1; char a[522],b[522],c[1200]; string s1,s2; while(scanf("%I64d",&n)!=EOF&&n) { scanf("%I64d",&m);cnt++; flag=false;flag1=false; getchar(); gets(c); { int k=0,t=0; while(c[k]==' ') k++; if(c[k]=='"') {k++;flag=true;} if(flag) while(c[k]!='"') a[t++]=c[k++]; else while(c[k]!=' ') a[t++]=c[k++]; a[t]='/0';t=0;k++; while(c[k]==' ')k++; if(c[k]=='"') { k++;flag1=true; } if(flag1) { while(c[k]!='"') b[t++]=c[k++]; } else { while(c[k]!=' '&&c[k]!='/0') b[t++]=c[k++]; } b[t]='/0'; k=0;while(a[k]!='/0') {if(a[k]>='A'&&a[k]<='Z') a[k]+=32;k++;} a[k]='/0'; k=0;while(b[k]!='/0') {if(b[k]>='A'&&b[k]<='Z') b[k]+=32;k++;} b[k]='/0'; s1=a;s2=b; } if((n-1)%(2*m)<m) cout<<cnt<<". "<<s1<<endl; else cout<<cnt<<". "<<s2<<endl; } return 0; }