Cod sursa(job #1361509)

Utilizator Marius.PPatrascu Marius Florin Marius.P Data 25 februarie 2015 21:43:51
Problema Convertor Scor 0
Compilator c Status done
Runda rosedu_cdl_2015 Marime 1.56 kb
#include <stdio.h>
#include <ctype.h>

#define MARIME 4028
int main () {
	char v[MARIME];
	int ok=0,i=0;
	FILE *f = fopen ("convertor.in","r"),
		 *g = fopen ("convertor.out","w");

	while ( !feof(f) ) {
		
		fread (v,sizeof(char),MARIME,f);
		
		//printf("%s\n",v );
		
		for ( i=0 ; i < MARIME ; i++) {


			if (v[i] == '}') {
				printf ("\n");
				break;
			}
			
			if (v[i]=='[')
				ok=0;
			if ( !( v[i] == '"' || isdigit(v[i])) )
				continue;
			if (v[i] == '"'){
				ok++;
				i++;
				if (ok % 4 == 1 )  {
					while ( v[i]!='"' && i < MARIME ){
						fprintf (g,"%c",v[i]); 
						i++;
					}
					fprintf (g,",");
				}
				else while ( v[i]!='"' && i < MARIME ) 
					i++;
				ok++;
			continue;
			}
			
			if (isdigit (v[i])) {
				ok+=2;
				i++;
				while ( isdigit(v[i]) && i < MARIME )
					i++;	
				if( !( ++i < MARIME)) break;	
			}
		}
	}
	fprintf(g, "\n" );

	rewind (f);

	while ( !feof(f) ) {
		
		fread (v,sizeof(char),MARIME,f);
		
		for ( i=0 ; i < MARIME ; i++) {


			if (v[i] == '}') {
				printf ("\n");
				break;
			}
			
			if (v[i]=='[')
				ok=0;
			if ( !( v[i] == '"' || isdigit(v[i])) )
				continue;
			if (v[i] == '"'){
				ok++;
				i++;
				if (ok % 4 == 1 )  {
					while ( v[i]!='"' && i < MARIME ){
						fprintf (g,"%c",v[i]); 
						i++;
					}
					fprintf (g,",");
				}
				else while ( v[i]!='"' && i < MARIME ) 
					i++;
				ok++;
			continue;
			}
			
			if (isdigit (v[i])) {
				ok+=2;
				i++;
				while ( isdigit(v[i]) && i < MARIME )
					i++;	
				if( !( ++i < MARIME)) break;	
			}
		}
	}

	fclose (f);
	fclose (g);
	return 0;
}