Cod sursa(job #1359653)

Utilizator MikkennCorneci Vlad Mihai Mikkenn Data 25 februarie 2015 00:41:51
Problema Convertor Scor 0
Compilator c Status done
Runda rosedu_cdl_2015 Marime 1.46 kb
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

void afisarecontinut(char * a);

void headers () {
	FILE * f;
	int i;
	char * ptr, * tags, *contain;
	int virgula = 0, dpuncte=0, ok = 1, indexare = 0, idx2 = 0;
	tags = malloc (900);
	ptr  = malloc (99999999);
	contain = malloc (99999999);
	if ((f = fopen ("convertor.in", "rt")) == NULL){
		printf("eroare");
	}
	fread(ptr, 9999, 1, f);
	ptr = strstr(ptr, "{");
	ptr+=2;

	for ( i = 0; i < strlen ( ptr) -1; i ++){
		if (ptr[i] == ':')
			dpuncte++;
		if (ptr[i] == ',')
			virgula++;
		if (ptr[i] == '}')
			ok = 0;
		if (virgula ==  dpuncte && ok == 1 && ptr[i] != '\n' && ptr[i] != '\"'){
			tags[indexare] = ptr[i];
			indexare++;
		}
		if( virgula < dpuncte  && ptr[i] != ']' && ptr[i]!= '\n'){
			contain[idx2] = ptr[i];
			if ( contain[idx2] == '}'){
				contain[idx2-1] = ',';
				contain[idx2] = '\n';
			}
			idx2++;
		}
	}
	contain[idx2-1] = '\0';
	tags[indexare] = '\0';
	tags[indexare-1]=',';
	tags[indexare]='\n';
	for (i = 0; i < strlen(tags);i++){
		if(tags[i] == ',' && tags[i+1] == ' '){
			printf(",");
			i+=2;
		}
		printf("%c", tags[i]);
	}
	//printf("%s,\n", tags);
	for (i = 0; i < strlen(contain); i++){
		if(contain[i] == ':'){
			if( i != 0 && contain [i-1]!= '\n' )
				printf(",");
		
			i++;
			

			while(contain[i] == ' ')
				i++;
		}
		if(contain[i]!='\"')
			printf("%c", contain[i]);
	}
	
	//fputs(contain, stdout);
	
}

int main() {
	//freopen("convertor.out", "w", stdout);
	headers();
	return 0;
}