UVA_10361

本文通过一个具体的示例,展示了如何使用C语言处理字符串中的特定符号,并重新组织字符串的顺序。重点介绍了如何避免使用非标准库函数,如fflush,并推荐使用getchar()来清除输入缓冲区中的换行符。此外,还详细说明了遍历字符串并记录关键符号位置的方法。

/*水题,但由于语言基础不牢导致了几次RE

主要原因在于其中有一行的fflush函数是非标准库函数

应该用getchar()除去缓冲区的换行符

核心算法为遍历整个字符串,记录下‘<’‘>’的四个相对位置

然后依据位置逐个输出

*/

#include "stdio.h"

#include "string.h"


int main()
{
int n;
int len1,len2;
char a[200],b[200];
int p[7];
int j,i;
//freopen("out.txt","w",stdout);

scanf("%d",&n);

//fflush(stdin);

getchar();
for(i=0;i<n;i++)
{
gets(a);
gets(b);
len1=strlen(a);
len2=strlen(b);
int flag=0;
//printf("%d\n",len1);
for(j=0;j<len1;j++)
{
p[4]=len1;
if(flag==0&&a[j]=='<'){p[0]=j;flag++;} 
if(flag==1&&a[j]=='>'){p[1]=j;flag++;}
if(flag==2&&a[j]=='<'){p[2]=j;flag++;}
if(flag==3&&a[j]=='>'){p[3]=j;flag++;}
if(flag==4&&a[j]=='\n'){p[4]=j;flag++;}
}
//printf("%d %d %d %d %d %d\n",p[0],p[1],p[2],p[3],p[4],p[5]);
for(j=0;j<len1;j++)
{
if(j!=p[0]&&j!=p[1]&&j!=p[2]&&j!=p[3])
printf("%c",a[j]);
}
printf("\n");
for(j=0;b[j]!='.';j++)
{
printf("%c",b[j]);
}
for(j=p[2]+1;j<p[3];j++)
printf("%c",a[j]);
for(j=p[1]+1;j<p[2];j++)
printf("%c",a[j]);
for(j=p[0]+1;j<p[1];j++)
printf("%c",a[j]);
for(j=p[3]+1;j<p[4];j++)
printf("%c",a[j]);
if(i!=n-1);
puts("");
}


return 0;

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值