Cod sursa(job #1345600)
Utilizator | Data | 17 februarie 2015 19:10:20 | |
---|---|---|---|
Problema | Convertor | Scor | 0 |
Compilator | c | Status | done |
Runda | rosedu_cdl_2015 | Marime | 3.29 kb |
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char *next(char *from,char *word) {
char sep[] = "{[]:,\n";
word = strtok(from,sep);
return word;
}
int main(void) {
FILE *f = fopen("convertor.in","r");
FILE *f2 = fopen("convertor.out","w");
char line[10130],*cuv;
int i = 0;
int j = 0, nr_cuv = 1;
int first = 0;
char rms[10000];
while( fgets(line,10000,f) != NULL) {
cuv = next(line,cuv);
while(cuv!=NULL) {
if(strcmp(cuv," ")) {
char *aux =(char *) strdup(cuv);
char *t = (char *) strstr(aux,"\"");
if (t) {
i = 1;
if(nr_cuv % 2 == 0 && first == 0) {
while(t[i] != '\"') {
fputc(t[i],f2);
i++;
}
fputs(",",f2);
}
if(nr_cuv % 2 == 1 && first == 0) {
while(t[i] != '\"') {
rms[j] = t[i];
j++;
i++;
}
rms[j] = ',';
j++;
}
if(nr_cuv % 2 == 1 && first == 1) {
while(t[i] != '\"') {
fputc(t[i],f2);
i++;
}
fputs(",",f2);
}
for(;i<strlen(t);i++) {
if(t[i] == '}') {
fputs("\n",f2);
nr_cuv=0;
if(first == 0) {
fputs(rms,f2);
fputs("\n",f2);
}
first = 1;
}
}
}
else {
i = 0;
if(nr_cuv % 2 == 1 && first == 0) {
while(i < strlen(aux)) {
if( aux[i] == '}') {
fputs("\n",f2);
nr_cuv = 0;
first = 1;
}
if( (aux[i] - '0') >= 0 && (aux[i] - '0') <=9 ) {
rms[j] = aux[i];
j++;
}
i++;
}
rms[j] = ',';
j++;
}
if(nr_cuv %2 == 1 && first == 1) {
while(i < strlen(aux)) {
if( aux[i] == '}') {
fputs("\n",f2);
nr_cuv = 0;
first = 1;
}
if( (aux[i] - '0') >= 0 && (aux[i] - '0') <=9 )
fputc(aux[i],f2);
i++;
}
fputs(",",f2);
}
}
}
cuv=next(NULL,cuv);
nr_cuv++;
}
}
fclose(f2);
return 0;
}