UVa 10361 自动作诗机

来源:互联网 发布:jdk分linux和windows 编辑:程序博客网 时间:2024/04/28 21:20

/*

* 解题思路: 

* 这道题题意很好懂、输出直接按范例输出就好、没有什么特别要注意的陷阱、控制好就ok ~

*/

#include<stdio.h>#include <string.h>#define A 10000#define B 5int main( ){    int t;    int p,q,r;    int i,j;    int flag;    int pos[ B ],len[ B ];    char c;    char s[ A] ,ss[A ];    char str[ B ][ A ];    scanf("%d",&t);    getchar( );    while( t-- )    {        p = q = r = flag = 0;        memset( pos,0,sizeof(pos));        while( ( c = getchar( ) ) !='\n' )        {            s[ p++ ] = c;            if( c=='<' )            {                flag = 1;                pos[ q ] = p-1;            }            else if( c=='>' )            {                flag = 0;                len[ q ] = r;                q++;                r=0;            }            else if( flag )                str[ q ][ r++ ] = c;        }       for( i=0;i<p;i++ )            if( i==pos[ 0 ] || (  i==( pos[ 0 ] +len[ 0 ] + 1)  ) || i == pos[ 1 ] || (i == ( pos[ 1 ] + len[ 1 ] + 1 )  ) ) continue;            else printf("%c",s[ i ] );        puts("");        i =j =flag = 0;        while( (c = getchar() ) !='\n' )        {            ss[ i++ ] = c;            if( c == '.' && !flag )            {                j = i-1;                flag = 1;            }        }        for( i=0;i<j;i++ )            printf("%c",ss[ i ] );        for( i=pos[ 1 ]+1 ;i<pos[1]+len[ 1 ]+1;i++ )            printf("%c",s[ i ] );        for( i=pos[ 0 ]+len[ 0 ]+2;i<pos[ 1 ] ;i++ )            printf("%c",s[ i ] );        for( i=pos[ 0 ]+1;i<pos[ 0 ]+len[ 0 ]+1;i++ )            printf("%c",s[ i ] );        for( i=pos[ 1 ]+len[ 1 ]+2;i<p;i++ )            printf("%c",s[ i ] );        puts("");    }    return 0;}


0 0