Cod sursa(job #1359733)
Utilizator | Data | 25 februarie 2015 01:28:13 | |
---|---|---|---|
Problema | Convertor | Scor | 70 |
Compilator | c | Status | done |
Runda | rosedu_cdl_2015 | Marime | 2.69 kb |
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fin1 = fopen("convertor.in" , "rt");
FILE *fout = fopen("convertor.out" , "wt");;
char c;
int end = 0, end1 = 0, stage, stage1;
while(!end1)
{
fscanf(fin1, "%c", &c);
switch(c)
{
case '{' :
{
stage1 = 1;
break;
}
case ',' :
{
stage1 = 1;
fprintf(fout , ",");
break;
}
default :
{
if(stage1 == 1 && c == '"')
{
stage1 = 2;
break;
}
else if(stage1 == 2 && c != '"')
{
fprintf(fout , "%c" , c);
break;
}
else if(stage1 == 2 && c == '"')
{
stage1 = 0;
break;
}
else if(c == '}')
{
fprintf(fout , ",");
end1 = 1;
break;
}
}
}
}
fclose(fin1);
FILE *fin = fopen("convertor.in" , "rt");
while(!end)
{
fscanf(fin , "%c" , &c);
switch(c)
{
case ':' :
{
stage = 1;
break;
}
case '{' :
{
fprintf(fout , "\n");
break;
}
case ',' :
{
fprintf(fout , ",");
stage = 0;
break;
}
case '}' :
{
stage = 0;
break;
}
default :
{
if(stage == 1 && c != '"' && c != ' ' && c != '\n')
{
fprintf(fout , "%c" , c);
break;
}
else if(stage == 1 && c == '"')
{
stage = 2;
break;
}
else if(stage == 2 && c != '"')
{
fprintf(fout , "%c" , c);
break;
}
else if(stage == 2 && c == '"')
{
stage = 0;
break;
}
else if(c == ']')
{
end = 1;
break;
}
}
}
}
fprintf(fout , ",");
return 0;
}