Cod sursa(job #1359163)

Utilizator maxu08Max Alexandru maxu08 Data 24 februarie 2015 21:31:49
Problema Convertor Scor 0
Compilator c Status done
Runda rosedu_cdl_2015 Marime 1.28 kb
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main()
{
	FILE *file,*out;
	file = fopen("convertor.in","r");
	out = fopen("convertor.out","w");

	char *linie = malloc(1024*sizeof(char));
	char *token;
	int i = 0,j,k,poz = 0,t,nr = 0,ok = 0,nr2 = 0;
	size_t lung = 0;
	ssize_t read;
	char c;

	while ((read = getline(&linie, &lung, file)) != -1) 
	{ 
		nr++;
		for(i = 0;i < strlen(linie);i++)
		{
			if(linie[i] == '"')
			{
				j = i + 1;
				while(linie[j] == ' ')
					j++;
				if(linie[j] != ':')
					poz = i + 1;	
				if(linie[j] == ':' && ok == 0)
				{
					for(j = poz;j < i;j++)
						fprintf(out,"%c",linie[j]);
					fprintf(out,",");
				}
			}
			if(linie[i] == '}')
				ok = 1;
		}
	}

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

	file = fopen("convertor.in","r");
	while ((read = getline(&linie, &lung, file)) != -1) 
	{ 
		nr2++;
		for(i = 0;i < strlen(linie);i++)
		{
			if(linie[i] == ':')
			{
				j = i + 1;
				while(linie[j] == ' ')
					j++;
				if(linie[j] == '"')
					poz = j + 1;	
				else
					poz = j;
			}
			if(linie[i] == ',')
			{
				j = i - 1;
				while(linie[j] == ' ')
					j--;
				k = j;
				for(j = poz;j < k;j++)
					fprintf(out,"%c",linie[j]);
				fprintf(out,",");
			}
		}
		if(nr2 != nr)
			fprintf(out,"\n");
	}

	fclose(file);
	fclose(out);
	free(linie);
}