您的位置:首页 > 其它

UVA - 10361 Automatic Poetry 神秘的空格

2014-09-20 19:19 323 查看
题目大意:根据题目将字符串进行转换

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

#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: