10361 - Automatic Poetry

来源:互联网 发布:淘宝交保证金可以退吗 编辑:程序博客网 时间:2024/05/16 18:40
/*题目大意:给一对字符串按原样输出除了'<','>'的第一行字符串输出第二行时,交换两个<>的内容*/#include <stdio.h>#include <stdlib.h>#include <string.h>/*第一个问题是把字符串的'<','>'去掉,然后原样输出*/void toPoetry(const char szStr1[],const char szStr2[]){//char* iPos = strchr(szStr,'<');int iLength1 = strlen(szStr1);int iLength2 = strlen(szStr2);int iPos[4],iCount = 0;int i;for(i = 0; i < iLength1; i++){//查找'<','>'的位置if(szStr1[i] == '<' || szStr1[i] == '>')iPos[iCount++] = i;if(szStr1[i] != '<' && szStr1[i] != '>')printf("%c",szStr1[i]);}printf("\n");//printf("%d%d%d%d",iPos[0],iPos[1],iPos[2],iPos[3]);for(i = 0; i < iLength2-3; i++)printf("%c",szStr2[i]);//首先输出iPos[2]~iPos[3]for(i  = iPos[2]+1; i < iPos[3]; i++)printf("%c",szStr1[i]);//输出iPos[1]~iPos[2]for(i  = iPos[1]+1; i < iPos[2]; i++)printf("%c",szStr1[i]);//输出iPos[0]~iPos[1]for(i  = iPos[0]+1; i < iPos[1]; i++)printf("%c",szStr1[i]);//输出iPos[3]~iPos[2]for(i  = iPos[3]+1; i < iLength1; i++)printf("%c",szStr1[i]);printf("\n");}int main(){int iCase;scanf("%d",&iCase);char szStr1[255];char szStr2[255];getchar();while(iCase--){gets(szStr1);gets(szStr2);toPoetry(szStr1,szStr2);}return 0;}