Cod sursa(job #1357715)

Utilizator liviudanSarariu Liviu - Dan liviudan Data 24 februarie 2015 02:13:47
Problema Convertor Scor 20
Compilator c Status done
Runda rosedu_cdl_2015 Marime 1.6 kb
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
int main()
{
    char a[1000],b[10500][100],c;
    int i=-1,j=0,x;
    FILE *f_in,*f_out;
    f_in=fopen("convertor.in","r");
    f_out=fopen("convertor.out","w");
    while(1)
    {
        fscanf(f_in,"%*[^\"}]");
        fscanf(f_in,"%c",&c);
        if(c=='}') break;
        fscanf(f_in,"%[^\"]",a);
        fprintf(f_out,"%s,",a);
        fscanf(f_in,"%c",&c);
        fscanf(f_in,"%*[^\"0123456789]");
        fscanf(f_in,"%c",&c);
        if(c=='"')
        {
            fscanf(f_in,"%[^\"]",a);
            i++;
            strcpy(b[i],a);
        }
        else
        {
            fscanf(f_in,"%[0123456789]",a);
            i++;
            b[i][0]=c;
            strcpy(b[i]+1,a);
        }
        fscanf(f_in,"%c",&c);
    }
    fprintf(f_out,"\n");
    for(j=0;j<=i;j++)
        fprintf(f_out,"%s,",b[j]);
    while(1)
    {
        fscanf(f_in,"%*[^:}]");
        fscanf(f_in,"%c",&c);
        if(c=='}')
        {
            x=fscanf(f_in,"%*[^:]");
            fscanf(f_in,"%c",&c);
            if(x==-1)break;
            else fprintf(f_out,"\n");
        }
        fscanf(f_in,"%*[^\"0123456789]");
        fscanf(f_in,"%c",&c);
        if(c=='"')
        {
            fscanf(f_in,"%[^\"]",a);
            fprintf(f_out,"%s,",a);
        }
        else if(isdigit(a))
        {
            fprintf(f_out,"%c",c);
            fscanf(f_in,"%[0123456789]",a);
            fprintf(f_out,"%s,",a);
        }
    }
    fclose(f_in);
    fclose(f_out);
    return 0;
}