其实 这都题目并不难,就是简单处理字符串的问题,不过有一点要注意的是,在取s2,s3,s4,s5
的时候,空格也是其中的一部分。
下面是我的代码:
#include <stdio.h>
#include <string.h>
int main()
{
int i,j,n,x,key,key1;
int flag;
char s1[1000][100];
char s2[100],s3[100],s4[100],s5[100];
scanf("%d",&n);
getchar();
for(i=0;i<=2*n-1;i++)
{
gets(s1[i]);
}
int l;
for(i=0;i<=2*n-1;i++)
{
if((i+1)%2==0)
{
strcat(s3,s4);
strcat(s3,s2);
strcat(s3,s5);
l=strlen(s1[i]);
for(j=0;j<=l-1;j++)
{
if(s1[i][j]!='.')
{
printf("%c",s1[i][j]);
}else
{
l=strlen(s3);
for(j=0;j<=l-1;j++)
{
printf("%c",s3[j]);
}
printf("\n");
break;
}
}
}else
{
l=strlen(s1[i]);
key=0;key1=0;
for(j=0;j<=l-1;j++)
{
if(s1[i][j]=='<')
{
flag=0;
if(key==0)
{
for(x=j+1;s1[i][x]!='>';x++)
{
s2[flag]=s1[i][x];
flag+=1;
}
s2[flag]='\0';
key=1;
}else
{
for(x=j+1;s1[i][x]!='>';x++)
{
s3[flag]=s1[i][x];
flag+=1;
}
s3[flag]='\0';
}
}else if(s1[i][j]=='>')
{
flag=0;
if(key1==0)
{
for(x=j+1;s1[i][x]!='<';x++)
{
s4[flag]=s1[i][x];
flag+=1;
}
s4[flag]='\0';
key1=1;
}else
{
for(x=j+1;x<=l-1;x++)
{
s5[flag]=s1[i][x];
flag+=1;
}
s5[flag]='\0';
}
}else
{
printf("%c",s1[i][j]);
}
}
printf("\n");
}
}
return 0;
}