Cod sursa(job #1343388)

Utilizator RaduDoStochitoiu Radu RaduDo Data 15 februarie 2015 14:04:49
Problema Convertor Scor 90
Compilator cpp Status done
Runda rosedu_cdl_2015 Marime 2.22 kb
#include<stdio.h>
#include<string.h>
 
int main()
{
    FILE *f, *f2;
    char c, auxx[1500];
    int lung[100001], l[100001], i, k = 0, ok = 0, ll, kk = 0;
    f = fopen("convertor.in", "rt");
    f2 = fopen("convertor.out", "wt");
    do
    {
        fread(&c, 1, 1, f);
        if(c == '"')
        {
            l[k] = 0;
            do
            {
                fread(&c, 1, 1, f);
                if(c == '"') break;
                fwrite(&c, 1, 1, f2);
                ++l[k];
            }
            while(1);
			
            do
            {
                fread(&c, 1, 1, f);
                if(c == ',') break;
                if(c == '}')
                {
                    ok = 1;
                    break;
                }
            }
            while(1);
			
            k++;
            c = ',';
            fwrite(&c, 1, 1, f2);
        }
        if(ok == 1) break;
    }
    while(1);
    c = '\n';
    fwrite(&c, 1, 1, f2);
	
	fseek(f, 0, SEEK_SET);
     
    do
    {
        fread(&c, 1, 1, f);
        if(c == '"')
        {
            fread(&auxx, l[kk] + 1, 1, f);
            kk++;
            if(kk == k) kk = 0;
            do
            {
                fread(&c, 1, 1, f);
                if((c >= '0' && c <= '9') || c == '"' || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) break;
            }
            while(1);
            if(c != '"')
            {
                fwrite(&c, 1, 1, f2);
                do
                {
                    fread(&c, 1, 1, f);
                    if(!((c >= '0' && c <= '9') || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))) break;
                    fwrite(&c, 1, 1, f2);
                }
                while(1);
            }
            else
            do
            {
                fread(&c, 1, 1, f);
                if(c == '"') break;
                fwrite(&c, 1, 1, f2);
            }
            while(1);
            c = ',';
            fwrite(&c, 1, 1, f2);
            if(kk == 0)
            {
                c = '\n';
                fwrite(&c, 1, 1, f2);
            }
        }
         
        if(c == ']') break;
    }
    while(1);
    return 0;
}