Cod sursa(job #1343388)
Utilizator | 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;
}