Cod sursa(job #1343908)

Utilizator mihaiiiChirculescu Mihai mihaiii Data 16 februarie 2015 00:54:40
Problema Convertor Scor 90
Compilator c Status done
Runda rosedu_cdl_2015 Marime 1.74 kb
#include <stdio.h>
#include <stdbool.h> 
int main() 
{

    FILE *f;
    char c;
    bool p = false;
    bool z = false;
    int ghilimele = 0;
    f=fopen("convertor.in","rt");
    FILE *fw = fopen("convertor.out", "w");

    while((c=getc(f))!= '}')
    {
        if (c == '"') 
        {
        ghilimele++;
        p=true;
        }
        
        if ((c == ':') && (ghilimele % 2 == 0))
        {
            z=true;
        }
        
        if ((c == ',') && (ghilimele % 2 == 0))
        {
            z=false;
        }
        
        if ((p==true) && (ghilimele % 2 == 0) && (z == false))
        {
            fprintf(fw,",");
        }
        p=false;
        
        if ((ghilimele % 2 == 1) && (c!='"') && (z==false))
        {
        fprintf(fw,"%c",c);
        }
        
    }
    fclose(f);
    
    fprintf(fw,"\n");
    z=false;
    ghilimele = 0;
    p=false;
    bool q=false;
    f=fopen("convertor.in","rt");
    
    while((c=getc(f))!=']')
    {
        if (c == '"') 
        {
            ghilimele++;
        }
        
       if (((c >= 'a'&& c <='z') || (c >= 'A' && c <= 'Z') || (c>='0' && c<='9') || (ghilimele % 2 == 1)) && (p == true) && (c!='"'))
       {
            fprintf(fw,"%c",c);           
       }
        
        
        
        if ((c == ':') && (ghilimele % 2 == 0))
        {
            p = true;
        }
        
        if ((c == ',') && (ghilimele % 2 == 0) && (q==true))
        {
            p = false;
            fprintf(fw,",");
        }
        
        if ((ghilimele % 2 == 0) && (c == '}'))
        {
            p = false;
            q = false;
            fprintf(fw,",\n");
        }
        if (c == '{')
        {
            q=true;
        }
    }
    fclose(f);
    fclose(fw);
    return 0;
}