Cod sursa(job #1359401)

Utilizator Marius.PPatrascu Marius Florin Marius.P Data 24 februarie 2015 22:25:31
Problema Convertor Scor 0
Compilator c Status done
Runda rosedu_cdl_2015 Marime 1.53 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;
	do 	{
	
		if (fscanf (f,"%c",&a)==0) break;
		if (a == '}') { fprintf (g,"\n");
			break;
			}
		if (!( isalpha (a) || isdigit (a) ) || a== '"') continue;
		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;
					}
			}		
		}		
	} while ( a  != EOF );
	rewind (f);
	nr1=0;
	do	{
		if (fscanf (f,"%c",&a)==0) break;
		if (a == '{' || a =='[' ) continue;
		if ( a == '}') fprintf (g,"\n");
		if ( a == ']') 
			break;
		//if (!( isalpha (a) || isdigit (a) ) || a!= '"') continue;	
		if ( a == '"' ) {
			nr1++;	
			if ( nr1 % 4 == 1 || nr1 % 4 == 2)
				continue;
			while (FOREVER){
					if (fscanf (f,"%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 (f,"%c",&a)==0) break;		
					if  (!(isdigit(a))) {
						nr1++;
						fprintf (g,",");
						break;
					}
					fprintf (g,"%c",a);
			}
		}
	} while (a != EOF );	
	fclose (f);
	return 0;
};