Cod sursa(job #1357497)

Utilizator Sergiu121Sergiu Weisz Sergiu121 Data 23 februarie 2015 22:37:11
Problema Convertor Scor 0
Compilator c Status done
Runda rosedu_cdl_2015 Marime 2.51 kb
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(void)
{
	char *str;
	FILE *f, *g;

	f = fopen("convertor.in","rt");
	g = fopen("convertor.out", "wt");

	str = malloc(1024 * sizeof(char));

	fread(str, sizeof(char), 1024, f);

	while(*str != '}')
	{
		while(*str != '"')
		{
			if(*str == '}')
                break;
            if(*str == '\n')
			{
				fread(str, sizeof(char), 1024, f);
			}
			str++;

		}
        if(*str == '}')
            break;
		str++;
		while(*str != '"')
		{
			//fprintf(g, "%c", *str);
            if(*str == '}')
                break;
            if(*str == '\n')
			{
				fread(str, sizeof(char), 1024, f);
			}
			printf("%c", *str);
			str++;

		}
		printf(",");
		while(*str != ',')
		{
            if(*str == '}')
                break;
			if(*str == '\n')
			{
				fread(str, sizeof(char), 1024, f);
			}
			str++;

		}
        if(*str == '}')
            break;
		str++;
	}
	printf("\n");

 	fseek(f,0,SEEK_SET);

	fread(str, sizeof(char), 1024, f);

    while(*str != ']')
    {
    	while(*str != ':')
    	{
    		if(*str == '\n')
    			fread(str, sizeof(char), 1024, f);
    		str++;
    	}
        str++;
        while(*str != '1' && *str != '2' && *str != '3' && *str != '4' && *str != '5' && *str != '6' && *str != '7' && *str != '8' && *str != '9' && *str != '0' && *str != '"')
        {
            if(*str == '\n')
                fread(str, sizeof(char), 1024, f);
    		str++;
        }
    	if(*str == '"')
    	{
    		str++;
    		while(*str != '"')
	    	{
	    		if(*str == '\n')
				{
					fread(str, sizeof(char), 1024, f);
				}
				printf("%c", *str);
				str++;
    		}
    		printf(",");
    	}
    	else if(*str == '1' || *str == '2' || *str == '3' || *str == '4' || *str == '5' || *str == '6' || *str == '7' || *str == '8' || *str == '9' || *str == '0')
    	{
    		while(*str != ' ' && *str != '}' && *str != ',' && *str != '\n')
    		{
    			if(*str == '\n')
				{
					fread(str, sizeof(char), 1024, f);
				}
				printf("%c", *str);
				str++;
    		}
    		printf(",");
    	}

    	while(*str != ',' && *str != '}')
    	{
	    	if(*str == '\n')
			{
				fread(str, sizeof(char), 1024, f);
			}
			str++;
    	}
    	if (*str == '}')
    	{
    		while(*str != '{' && *str != ']')
    		{
	    		if(*str == '\n')
				{
					fread(str, sizeof(char), 1024, f);
				}
				str++;
    		}
    		if(*str == '{')
                printf("\n");
    		if(*str == ']')
    		{
    			printf("\n");
    			return 0;
    		}
    	}
    }

    free(str);
	fclose(f);
	fclose(g);

	return 0;
}