Pagini recente » Cod sursa (job #930524) | Cod sursa (job #915084) | Cod sursa (job #208925) | Cod sursa (job #3198451) | Cod sursa (job #1348383)
#include <stdio.h>
#include <string.h>
int main ()
{
FILE *f,*g;
int i,j,a=0,b=0;
char c, p[700000],q[700000],*bf;
f=fopen("convertor.in","rt");
g=fopen("convertor.out","wt");
i=0;
int nrg=0,nrp=0,nracd=0,nraci=0,nrdp=0;//Nr ghilimele pentru spatii & shit
while(!feof(f))
{
fscanf(f,"%c",&c);
if( c == '[' || c == ']')
nrp++;
if(c == '}')
{
nraci++;
nracd=0;
}
if(c == '{')
{
nracd++;
nraci=0;
}
if(c == '"')
nrg++;
if(c == ':')
nrdp++;
if(c == ',')
{
nrdp=0;
nrg=0;
}
//Eliminam spatiile intre ghilimele si doua puncte
if(nrdp==0 && nrg==2 && c==' ')
continue;
if(nrdp==1 && nrg==2 && c==' ')
continue;
//Eliminam spatiile intre 2 acolade
if(nracd==0 && nracd!=0 && c==' ')
continue;
//Eliminam spatiile intre {}si []
if(nracd == 0 && nraci == 0 && nrp==1 && c==' ')
continue;
if(nraci == 1 && nracd==0 && nrp==1 && nrdp!=0 && c==' ')
continue;
if(nracd!=0 && nrp)
if(c == '\n' )
continue;
if(c == ':')
a++;
if(c == '{')
b++;
p[i]=c;
i++;
}
p[i-1]='\0';
bf=strtok(p,"{}\",\n:[]");
i=0;
j=0;
while(bf != NULL)
{
if(strcmp(bf," ")!=0)
{
i++;
if(i%2 == 1 && i< (a/b)*2 )
{
fprintf(g,"%s,",bf);
if(i == (a/b)*2 -1)
fprintf(g,"\n");
}
if(i%2 == 0)
{
if(j == 0)
{
strcpy(q,bf);
j++;
strcat(q,",");
}
else if( i%((a/b)*2) == 0)
{
strcat(q,bf);
strcat(q,",");
strcat(q,"\n");
}
else
{
strcat(q,bf);
strcat(q,",");
}
}
}
bf=strtok(NULL,"{}\"\n,:[]");
}
fputs(q,g);
fclose(f);
fclose(g);
return 0;
}