字符串-10361 Automatic Poetry

来源:互联网 发布:手机迅雷替代工具知乎 编辑:程序博客网 时间:2024/05/18 03:57

题目大意:

s1<s2>s3<s4>s5

c...

转化为:

s1s2s3s4s5

cs4s3s2s5

解题过程:开始时WA2次,而且没找到原因。。。只能归结于程序写得太繁琐,可能某个地方输出不对了,后来改成平铺直叙的写法,一次AC。

注意:

1、正确代码中使用了fstream库函数

2、在使用cin.getline()时,连续使用cin.getline,转行会统一处理,但是当从cin转到cin.getline()时,需要清除缓冲区里的转行

正确代码:

# include <cstdio># include <ctime># include <cmath># include <iostream># include <fstream># include <cstring>#define fin cin#define fout coutusing namespace std;//ifstream fin("in.txt");//ofstream fout("out.txt");char l1[200],l2[200];char s1[200],s2[200],s3[200],s4[200],s5[200];int main(){int n;fin>>n;fin.getline(l1,200);//清除缓冲区中的换行 while(n){n--;strcpy(l1,"");strcpy(l2,"");strcpy(s1,"");strcpy(s2,"");strcpy(s3,"");strcpy(s4,"");strcpy(s5,"");fin.getline(l1,200); fin.getline(l2,200);int times;int i,j;for(i=0;i<strlen(l1);i++){if(l1[i]=='<') break;s1[i]=l1[i];}s1[i++]='\0';for(j=0;i<strlen(l1);i++,j++){if(l1[i]=='>') break;s2[j]=l1[i];}s2[j]='\0';i++;for(j=0;i<strlen(l1);i++,j++){if(l1[i]=='<') break;s3[j]=l1[i];}s3[j]='\0';i++;for(j=0;i<strlen(l1);i++,j++){if(l1[i]=='>') break;s4[j]=l1[i];}s4[j]='\0';i++;for(j=0;i<strlen(l1);i++,j++){s5[j]=l1[i];}s5[j]='\0';/* fout<<"s1= "<<s1<<endl;fout<<"s2= "<<s2<<endl;fout<<"s3= "<<s3<<endl;fout<<"s4= "<<s4<<endl;             fout<<"s5= "<<s5<<endl;fout<<"end ABCD"<<endl<<endl;//*/fout<<s1<<s2<<s3<<s4<<s5<<endl;for(int j=0;j<strlen(l2);j++){if(l2[j]=='.') break;fout<<l2[j];}fout<<s4<<s3<<s2<<s5<<endl;}//fout<<clock()*1.000/CLOCKS_PER_SEC<<endl;return 0; } 

0 0