Cod sursa(job #1360176)

Utilizator maxu08Max Alexandru maxu08 Data 25 februarie 2015 12:26:43
Problema Convertor Scor 50
Compilator c Status done
Runda rosedu_cdl_2015 Marime 1.8 kb
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

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

	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;
			continue;
		}
		if(read == '"' && ok == 1)
		{
			ok = 0;
			if(nr == 1)
				fprintf(out,",");
			nr = 0;
			continue;
		}	

		if(read == ',')
			nr = 1;

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

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

	in = fopen("convertor.in","r");
	nr = 0;
	ok = 0;
	ok2 = 0;
	int i = 0;
	while((read = fgetc(in)) != EOF)
	{
		i++;
		printf("pas %d: read = %c ok = %d nr = %d ok2 = %d\n",i,read,ok,nr,ok2);
		if(read == '}')
		{
			nr = 0;
			fprintf(out,"\n");
			continue;
		}

		if(read == ',' && ok2 == 0)
		{
			nr = 0;
			continue;
		}

		if(read == ':')
		{
			nr = 1;
			continue;
		}

		if(read == '"' && nr == 1 && ok == 0)
		{
			ok = 1;
			continue;
		}

		if(read == '"' && ok == 1)
		{
			ok = 0;
			if(nr == 1)
				fprintf(out,",");
			nr = 0;
			continue;
		}

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

		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(read == '0' || read == '1' || read =='2' || read == '3' || read == '4' || read =='5' || read == '6' || read == '7' || read =='8' || read == '9')
			if(nr == 1 && ok2 == 1)
			{
				fprintf(out,"%c",read);
				continue;
			}

		if(read == ',' && ok2 == 1)
		{
			ok2 = 0;
			fprintf(out,",");
			nr = 0;
			continue;
		}
	}

	fclose(in);
	fclose(out);
}