Cod sursa(job #1341680)

Utilizator RaduDoStochitoiu Radu RaduDo Data 12 februarie 2015 23:49:14
Problema Convertor Scor 50
Compilator cpp Status done
Runda rosedu_cdl_2015 Marime 1.24 kb
#include<stdio.h>
#include<string.h>

int main()
{
	FILE *f, *f2;
	char c;
	f = fopen("convertor.in", "rt");
	f2 = fopen("convertor.out", "wt");
	while(1)
	{
		fscanf(f, "%c", &c);
		if(c == '"') while(1)
		{
			fscanf(f, "%c", &c);
			if(c == '"')
			{
				fprintf(f2, ",");
				break;
			}
			fprintf(f2, "%c", c);
		}
		else if(c == '}')
		{
			fprintf(f2, "\n");
			break;
		}
		else if(c == ':') while(1)
		{
			fscanf(f, "%c", &c);
			if(c == ',' || c == '}') break;
		}
		if(c == '}') break;
	}
	fprintf(f2, "\n");
	fseek(f, 0, SEEK_SET);
	while(1)
	{
		fscanf(f, "%c", &c);
		if(c == ']') break;
		else if(c == '}')
		{
			fprintf(f2, "\n");
			while(1)
			{
				fscanf(f, "%c", &c);
				if(c == '{' || c == ']') break;
			}
		}
		else if(c == ':')
		{
			while(1)
			{
				fscanf(f, "%c", &c);
				if(c != ' ') break;
			}
			if(c != '"')
			{
				fprintf(f2, "%c", c);
				while(1)
				{
					fscanf(f, "%c", &c);
					if(c < '0' || c > '9')
					{
						fprintf(f2, ",");
						break;
					}
					fprintf(f2, "%c", c);
				}
			}
			else
			{
				while(1)
				{
					fscanf(f, "%c", &c);
					if(c == '"')
					{
						fprintf(f2, ",");
						break;
					}
					fprintf(f2, "%c", c);
				}
			}
		}
		if(c == ']') break;
	}
	fclose(f); fclose(f2);
	return 0;
}