Cod sursa(job #1358714)

Utilizator Marius.PPatrascu Marius Florin Marius.P Data 24 februarie 2015 19:21:36
Problema Convertor Scor 30
Compilator c Status done
Runda rosedu_cdl_2015 Marime 1.56 kb
#include <stdio.h>

#define FOREVER 1
int main ()	{
	FILE *f=fopen ("convertor.in","r");
	FILE *g=fopen ("convertor.out","w");
	char a;
	int nr1=0;
	while (FOREVER)	{
		
		fscanf (f,"%c",&a);
		
		if ( (a == '[') || ( a== '{') || (a == ',') || (a == ':'))	
			continue;
		if (nr1 % 2 == 0 && a == ' ')
			continue;
		if ( 0<=a-'0' && a-'0'<10) {
			nr1++;
			do {
					fscanf (f,"%c",&a);		
					if  (!( a-'0'>-1 && a-'0'<10)) {
						nr1++;
						break;
					}
			}
			while (FOREVER);
			
		}
		if ( a == '"' ) {
			nr1++;	
			if ( nr1 % 4 == 0 || nr1 % 4 == 3)
				continue;
			do {
					fscanf (f,"%c",&a);		
					if (a == '"') {
						nr1++;
						fprintf (g,",");
						break;
					}
					fprintf (g,"%c",a);
			}
			while (FOREVER);
		}
		if (a == '}') { fprintf (g,"\n");
			break;
			}
		
	}

	fclose (f);

	FILE *d=fopen ("convertor.in","r");
	nr1=0;
	while (FOREVER)	{
		
		fscanf (d,"%c",&a);
		
		if ( (a == '[') || ( a== '{') || (a == ',') || (a == ':'))	
			continue;
		if (nr1 % 2 == 0 && a == ' ')
			continue;
		if ( 0<=a-'0' && a-'0'<10) {
			nr1++;
			do {
					fscanf (d,"%c",&a);		
					if  (!( a-'0'>-1 && a-'0'<10)) {
						nr1++;
						fprintf (g,",");
						break;
					}
					fprintf (g,"%c",a);
			}
			while (FOREVER);
		}
		if ( a == '"' ) {
			nr1++;	
			if ( nr1 % 4 == 1 || nr1 % 4 == 2)
				continue;
			do {
					fscanf (d,"%c",&a);		
					if (a == '"') {
						nr1++;
						fprintf (g,",");
						break;
					}
					fprintf (g,"%c",a);
			}
			while (FOREVER);
		}
		if ( a == '}') fprintf (g,"\n");

		if ( a == ']') 
			break;
			
		
	}	
	fclose (d);
	return 0;
}