Pagini recente » Cod sursa (job #3201249) | Cod sursa (job #1237580) | Cod sursa (job #3200614) | Cod sursa (job #2406313) | Cod sursa (job #1361479)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* headers(FILE *f)
{
char *buffer;
char *capete;
int size =50;
capete = malloc(size);
int i, a = 0, p = 0, g = 0, index = 0;
buffer = malloc(1024);
while (1) {
fgets(buffer, 1024, f);
for (i = 0; i < strlen(buffer); i++) {
if (buffer[i] == ',')
a++;
if (buffer[i] == '}')
return capete;
else if (buffer[i] == ':')
p++;
if (a == p) {
if ( strlen(capete) +3 > size){
capete = realloc ( capete, size *2);
size *=2;
}
if (buffer[i] == '\"') {
g++;
if (g % 2 == 0) {
capete[index] = ',';
index++;
}
}
if (g % 2 == 1 && buffer[i] != '\"') {
capete[index] = buffer[i];
index++;
}
}
}
}
return capete;
}
void corp(FILE *f)
{
char *buffer;
register int i, a = 0, p = 0, g = 0;
buffer = malloc(1024);
while ((fgets(buffer, 1024, f)) != NULL) {
for ( i = 0; i< strlen(buffer); i++){
if (buffer[i] == ','){
//printf(",");
a++;
}
if (buffer[i] == ':'){
i++;
p++;
}
if( a < p){
if ( buffer[i] == '}')
printf("\n");
if( buffer[i] == '\"'){
g++;
if( g % 2 == 0)
printf(",");
}
if( g % 2 == 1 && buffer[i] != '\"'){
printf("%c", buffer[i]);
}
if (buffer[i] >= 48 && buffer[i] <= 57 && g % 2 ==0) {
printf("%c", buffer[i]);
if(buffer[i+1] < 48 || buffer[i+1] >57)
printf(",");
}
}
}
//printf("%d %d", a, p);
}
}
int main()
{
char *capete;
FILE *f;
f = fopen("convertor.in", "r");
freopen("convertor.out", "w", stdout);
//capete = malloc(1024);
capete = headers(f);
fseek ( f , 0 , SEEK_SET );
printf("%s\n", capete);
corp(f);
//fputs(capete, stdout);
return 0;
}