UVa 10361 - Automatic Poetry

本文介绍了一个处理字符串的基本算法,特别关注了如何在特定条件下处理字符串数组,并通过实例展示了如何实现这一算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

其实 这都题目并不难,就是简单处理字符串的问题,不过有一点要注意的是,在取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;
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值