Cod sursa(job #1359517)

Utilizator filip.munteanuFilip Munteanu filip.munteanu Data 24 februarie 2015 23:09:59
Problema Convertor Scor 90
Compilator c Status done
Runda rosedu_cdl_2015 Marime 1.47 kb
#include <stdio.h>
#include <stdlib.h>

FILE *f_in, *f_out;

int main()
{
	char c, *sir = (char *)malloc(1024*1024);
	int k = 0, i = 0;
	f_in = fopen("convertor.in", "rt");
	f_out = fopen("convertor.out", "wt");
	c = fgetc(f_in);
	printf("asd");
	while(c != '}' && c != EOF)
	{
		if(c == ',')
			k = 0;
		else
		{
			if(c == '\"')
			{
				c = fgetc(f_in);
				if(k == 0)
				{
					while(c != '\"')
					{
						fputc(c, f_out);
						c = fgetc(f_in);
					}
					fputc(',', f_out);
				}
				else
				{	while(c != '\"')
					{
						sir[i] = c;
						c = fgetc(f_in);
						i++;
					}
					sir[i] = ',';
					i++;
				}
				k = 1;
			}
			else
				if((c <= '9') && (c >= '0'))
				{
					while((c <= '9') && (c >= '0'))
					{
					sir[i] = c;
						c = fgetc(f_in);
						i++;
					}
					sir[i] = ',';
					i++;
					k = 0;
				}
		}		
		c = fgetc(f_in);	
	}
	fputc('\n', f_out);
	sir[i] = '\0';
	fputs(sir, f_out);
	//fputc('\n', f_out);
//	c = fgetc(f_in);
	k = 1;
	while(c != ']' && c != EOF)
	{
		if(c == ':')
			k = 0;
		else
		{
			if(k == 0 && c == '\"')
			{
				c = fgetc(f_in);
				while(c != '\"')
				{
					fputc(c, f_out);
					c = fgetc(f_in);
				}
				fputc(',', f_out);
				k = 1;
			}
			else
				if((c <= '9') && (c >= '0') && k == 0)
				{
					while((c <= '9') && (c >= '0'))
					{
						fputc(c, f_out);
						c = fgetc(f_in);
					}
					fputc(',', f_out);
					k = 1;
				}
				else
					if(c == '}')
						fputc('\n', f_out);
		}		
		c = fgetc(f_in);	
	}
	return 0;
}