Cod sursa(job #1350958)

Utilizator marinutzacatana marina marinutza Data 21 februarie 2015 01:13:04
Problema Convertor Scor 80
Compilator c Status done
Runda rosedu_cdl_2015 Marime 1.02 kb
#include<stdio.h>
#include<stdlib.h>

int main()
{
	char c, *key, *val;
	int dp=0, i=0, j=0, k=0;
	
	FILE *f=fopen("convertor.in","rt");
	FILE *g=fopen("convertor.out","wt");
	
	key=(char *)calloc(10000000, sizeof(char));
	val=(char *)calloc(10000000, sizeof(char));
	
	i=j=k=0;
	while(c!=']')
	{
		fscanf(f,"%c",&c);
		if(c=='{')
		{
			while(c!='}')
			{
				fscanf(f,"%c",&c);
				if(c=='"' && dp==0)
				{
					fscanf(f,"%c",&c);
					while(c!='"')
					{
						key[k++]=c;
						fscanf(f,"%c",&c);
					}
					key[k++]=',';
				}
				else
				{
					if(c==':') dp=1;
					else
					{
						if(dp==1 && (c!=' ' && c!='\n'))
						{
							if(c=='"') fscanf(f,"%c",&c);
							while(c!='"' && c!=',')
							{
								val[j++]=c;
								fscanf(f,"%c",&c);
							}
							val[j++]=',';
							val[j]='\0';
							dp=0;
						}
					}
				}
			}
			if(i==0)
				fprintf(g,"%s\n",key);
			fprintf(g,"%s\n",val);
			i++;
			j=k=0;
		}
	}
	
	free(key);
	free(val);
	return 0;
}