Cod sursa(job #1361262)

Utilizator Marius.PPatrascu Marius Florin Marius.P Data 25 februarie 2015 20:26:16
Problema Convertor Scor 60
Compilator c Status done
Runda rosedu_cdl_2015 Marime 1.55 kb
#include <stdio.h>
#include <ctype.h>
#define FOREVER 1
int main ()	{
	FILE *f=fopen ("convertor.in","r");
	FILE *g=fopen ("convertor.out","w");
	char a;
	unsigned  int nr1=0,nr2=0;
	while ( !feof(f) ){
	
		if (fscanf (f,"%c",&a)==0) break;
		if (a == '}') { 
			fprintf (g,"\n");
			break;
			}
		if (!( isdigit (a)  || a == '"' || a == '{' ))continue;

		if (a == '{') nr1=0;
		if ( a == '"' ) {
			nr1++;	
			if ( nr1 % 4 == 0 || nr1 % 4 == 3)
				continue;
			while (FOREVER) {
					if (fscanf (f,"%c",&a)==0) break;		
					if (a == '"') {
						nr1++;
						fprintf (g,",");
						break;
					}
					fprintf (g,"%c",a);
			}
		continue;
		}
		if ( isdigit(a)) {
			nr1++;
			while (FOREVER) {
					if (fscanf (f,"%c",&a)==0) break;		
					if  (!isdigit(a)) {
						nr1++;
						break;
					}
			}		
		}		
	} 
	FILE *d=fopen ("convertor.in","r");
	nr1=0;
	while ( FOREVER )	{

		if (fscanf (d,"%c",&a)==0) break;
		if ( a == '}') 

			fprintf (g,"\n");
		if (a == '{') nr1=0;

		if ( feof(d)) 
			break;
		if (!( isdigit (a)  || a== '"' || a == '{')) continue;
		if ( a == '"' ) {
			nr1++;	
			if ( nr1 % 4 == 1 || nr1 % 4 == 2)
				continue;
			while (FOREVER){
					if (fscanf (d,"%c",&a)==0) break;		
					if (a == '"') {
						nr1++;
						fprintf (g,",");
						break;
					}
					fprintf (g,"%c",a);
			}
		continue;
		}
		if (isdigit(a)) {
			fprintf (g,"%c",a);
			nr1++;
			while (FOREVER) {
					if(fscanf (d,"%c",&a)==0) break;		
					if  (!(isdigit(a))) {
						nr1++;
						fprintf (g,",");
						break;
					}
					fprintf (g,"%c",a);
			}
		}
	} 
	fclose (f);
	return 0;
}