UVA - 10361 Automatic Poetry 神秘的空格

题目大意:根据题目将字符串进行转换

解体思路:找到所需要替换的内容,存储在字符串中,再进行输出

#include<cstdio>
#include<cstring>

int main() {

	char str[300];
	char s[3000];
	char *st[100];
	int number;
	int len;
	int mark = 0;
	int i;
	int test;
	scanf("%d\n", &test);
	for(int i = 0 ; i < test * 2; i++) {
		gets(str);
		strcat(s,str);
		s[strlen(s)] = '\n';
	}
	len = strlen(s);
	char s1[100], s2[100], s3[100], s4[100] ;
	memset(s2,'\0',sizeof(s2));
	memset(s3,'\0',sizeof(s3));
	memset(s4,'\0',sizeof(s4));
	memset(s1,'\0',sizeof(s1));

	for(  i = 0 ; i < len ; i++ ) {
		if(mark != test) {
			if(s[i] == '<') {
				int k = i;
				k++;//跳过字符<
				for(int j = 0; s[k] != '>' ; j++, k++) {
					s1[j] = s[k];	
				}
				k++;//跳过字符>
				for(int j = 0; s[k] != '<'; j++,k++ )
					s2[j] = s[k];
				for(  ; k < len; k++ ) {
					if(s[k] == '<') {
						k++;//跳过字符<
						for(int j = 0; s[k] != '>' ; k++, j++) {
							s3[j] = s[k];	
						}
						k++;//跳过字符>
						for(int j = 0; s[k] != '\n'; j++, k++ )
							s4[j] = s[k];
						break;
					}
				}
				printf("%s%s%s%s", s1, s2, s3,s4);
				i = k;
			}
			if(s[i] == '.' && s[i + 1] == '.' && s[i + 2] == '.') {
				i = i + 3;
				printf("%s%s%s%s",s3 ,s2, s1, s4);	
				mark++;
				memset(s2,'\0',sizeof(s2));
				memset(s3,'\0',sizeof(s3));
				memset(s4,'\0',sizeof(s4));
				memset(s1,'\0',sizeof(s1));
				if(mark == test) {//少了这个就多出了个空格
					printf("\n");
					return 0;
				}
			}
		}
		printf("%c",s[i]);
	}
	return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值