Cod sursa(job #1361521)

Utilizator BogdanChelesCheles Bogdan-Andrei BogdanCheles Data 25 februarie 2015 21:52:55
Problema Convertor Scor 0
Compilator c Status done
Runda rosedu_cdl_2015 Marime 1.3 kb
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    FILE *f;
    FILE *fid;
    f=fopen("convertor.in","r");
    char *c;
    int ok1=0,ok2=0,cap=500,k=0,rulare=0,m=0;
    c=malloc(cap*sizeof(char));
    while(fscanf(f,"%c",&c[k])==1)
    {
        if(k==cap-1)
        {
            cap=25*cap;
            c=realloc(c,cap*sizeof(char));
        }
        if(rulare==0 && c[k]=='}')
        {
            m=k;
            k++;
            //fseek(f, 0, SEEK_SET);
            rulare=1;
            ok1=0;
        }
        if(rulare==0 && c[k]=='"')
        {
            if(ok1==0)
            ok1=1;
            else
            ok1=-1;
        }
        if(rulare==1 && c[k]=='{') {c[k]='\n'; k++;}
        if(rulare==1 && c[k]==':') ok1=1;
        if(ok1==1 && rulare==1 && c[k]=='"')
        {
                if(ok2==0)
                    ok2=1;
                else
                    ok2=0;

        }
        if((ok2==1 && c[k]!='"' && rulare==1) || (c[k]>='0' && c[k]<='9' && rulare==1) || (rulare==0 && ok1==1 && c[k]!='"') || c[k]==',')
        {
            if(c[k]==',') ok1=0;
            k++;
        }
    }
    c[m]=',';
    c[k]=',';
    c[k+1]='\0';
    fid=fopen("convertor.out","w");
    fprintf(fid,"%s",c);
    return 0;
}