Pagini recente » Cod sursa (job #2967288) | Cod sursa (job #3199090) | Cod sursa (job #1741072) | Cod sursa (job #2397648) | Cod sursa (job #1342494)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NMAX 1000000
int main()
{
char *aux, *head, *headaux, JSON[NMAX], *JSON1, del='"';
int i = 0, k;
FILE *f, *g;
f = fopen ("convertor.in", "r" );
g = fopen ("convertor.out", "w") ;
fscanf(f,"%[^\t]s",JSON);
JSON1 = strdup(JSON) ;
head = strtok(JSON,"}");
headaux = strtok(head,",{:");
while ( headaux != NULL ) {
if ( i % 2 == 1 ) {
int j1 ,j2, j;
for ( j = 0 ; j < strlen(headaux) ; j++ ) {
if ( headaux[j] == del ) j2 = j ;
}
for ( j = strlen(headaux) - 1 ; j >= 0 ; j-- ) {
if ( headaux[j] == del ) j1 = j ;
}
for ( j = j1 + 1 ; j < j2 ; j++ ) {
fprintf(g,"%c",headaux[j]);
}
fprintf(g,",");
}
// printf("%s %d\n",headaux,i);
headaux = strtok(NULL,",{:");
i = i + 1 ;
}
k = i ;
i = 0 ;
aux = strtok(JSON1,",:");
while ( aux != NULL ){
if ( i % 2 == 1 ) {
int j1, j2, j;
for ( j = 0 ; j < strlen(aux) ; j++ ) {
if ( (aux[j] >= 'A' && aux[j] <= 'Z') || (aux[j] >= 'a' && aux[j] <= 'z') || (aux[j] >= '0' && aux[j] <= '9') ) j2 = j ;
}
for ( j = strlen(aux) - 1 ; j >= 0 ; j-- ) {
if ( (aux[j] >= 'A' && aux[j] <= 'Z') || (aux[j] >= 'a' && aux[j] <= 'z') || (aux[j] >= '0' && aux[j] <= '9') ) j1 = j ;
}
for ( j = j1 ; j <= j2 ; j++ ) {
fprintf(g,"%c",aux[j]);
}
fprintf(g,",");
}
if ( i % (k - 1) == 0 ) fprintf(g,"\n");
//printf("%s %d\n",aux,i);
aux = strtok(NULL,",:");
i = i + 1 ;
}
fprintf(g,"\n");
return 0;
}