Cod sursa(job #1359803)

Utilizator deeagrtAndGrt deeagrt Data 25 februarie 2015 07:43:43
Problema Convertor Scor 0
Compilator c Status done
Runda rosedu_cdl_2015 Marime 1.34 kb
#include <stdio.h>
#include <stdlib.h>
#include <string.h>


int main()
{
	char *rand = calloc(1024,sizeof(char));
	char **cuvinte = calloc(1024,sizeof(char*));
	int i,j,k;
	FILE *f = fopen("convertor.in","r");
	i=0;
	FILE *g = fopen("convertor.out","w");
	while (!feof(f))	
		{
			if (fgets(rand,1024,f)==NULL)
				return 0;
			char *p=calloc(1024,sizeof(char));
			p = strtok(rand, "[{}]:,\n\t");
			while (p != NULL)
			{	
				cuvinte[i] = malloc(1024 * sizeof(char));						
				if (strcmp(p," ")!=0) 
					{
					while ((p[0]==' ')||(p[0]=='"'))
						{
							memcpy(p,p+1,strlen(p)-1);
							p[strlen(p)-1]='\0';//printf("%s\n", p);
						}
					 while ((p[strlen(p)-1]==' ')||(p[strlen(p)-1]=='"'))
							{
							p[strlen(p)-1]='\0';
							}
					strcpy(cuvinte[i], p);
					p[strlen(p)]='\0';
					i++;
					}
				p = strtok(NULL,"[{}]:,\n\t");
			}
			free(p);
		}
	free(rand);
	k = 1;
	fprintf(g, "%s,", cuvinte[0]);
	for ( j = 2; j < i; j += 2)
		if (strcmp(cuvinte[j], cuvinte[0]) != 0) 
			{
				fprintf(g,"%s,",cuvinte[j]);
				k++;
			}
			else {
				fprintf(g, "\n");
				break;
				}
	int q = 1;
	for (j = 1; j < i; j = j + 2)
		{ 
			fprintf(g, "%s,",cuvinte[j]);
			q++;
			if ((q - 1) % k == 0) 
				{
					q = 1;
					fprintf(g, "\n");
				}
		}
	fclose(f);
	fclose(g);
	for (j = 0;j < i;j++)
		free(cuvinte[j]);
	free(cuvinte);
	return 0;

}