Cod sursa(job #1360312)

Utilizator maxu08Max Alexandru maxu08 Data 25 februarie 2015 13:45:29
Problema Convertor Scor 70
Compilator c Status done
Runda rosedu_cdl_2015 Marime 1.48 kb
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main()
{
	FILE *in,*out;
	char read;
	int ok,nr,ok2,first;

	ok = 0;
	nr = 1;
	in = fopen("convertor.in","r");
	out = fopen("convertor.out","w");

	while((read = fgetc(in)) != EOF)
	{
		if(read == '}')
			break;

		if(read == '"' && ok == 0)
		{
			ok = 1;
		}
		else
		if(read == '"' && ok == 1)
		{
			ok = 0;
			if(nr == 1)
				fprintf(out,",");
			nr = 0;
		}	
		else
		if(read == ',')
			nr = 1;
		else
		if(read != '"' && ok == 1 && nr == 1)
		{
			fprintf(out,"%c",read);
		}
	}

	fprintf(out,"\n");
	fclose(in);

	in = fopen("convertor.in","r");
	nr = 0;
	ok = 0;
	ok2 = 0;
	first = 0;
	while((read = fgetc(in)) != EOF)
	{

		if(read == '}')
		{
			first = 1;
			nr = 0;
			fprintf(out,"\n");
		}
		else
		if(read == ',' && ok2 == 0)
		{
			nr = 0;
		}
		else
		if(read == ':')
		{
			nr = 1;
		}
		else
		if(read == '"' && nr == 1 && ok == 0)
		{
			ok = 1;
		}
		else
		if(read == '"' && ok == 1)
		{
			ok = 0;
			if(nr == 1)
				fprintf(out,",");
			nr = 0;
		}
		else
		if(read != '"' && nr == 1 && ok == 1)
		{
			fprintf(out,"%c",read);
		}
		else
		if(read == '0' || read == '1' || read =='2' || read == '3' || read == '4' || read =='5' || read == '6' || read == '7' || read =='8' || read == '9')
		{
			if(nr == 1 && ok2 == 0)
			{
				ok2 = 1;
			}
			if(nr == 1 && ok2 == 1)
			{
				fprintf(out,"%c",read);
			}
		}
		else
		if(read == ',' && ok2 == 1)
		{
			ok2 = 0;
			fprintf(out,",");
			nr = 0;
		}
	}

	fclose(in);
	fclose(out);
}