Pagini recente » Cod sursa (job #1084332) | Cod sursa (job #1360630) | Cod sursa (job #527481) | Cod sursa (job #2923662) | Cod sursa (job #1361039)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char *s;
int count = 1;
long int dim;
long int i;
char *doi;
int ok = 0;
int cadru = 0;
FILE *f = fopen("convertor.in", "rb");
FILE *g = fopen("convertor.out", "w");
fseek(f,0,2);
dim = ftell(f);
fseek(f,0,0);
s = (char *)malloc(dim*sizeof(char));
fread(s,sizeof(char),dim,f);
i = 0;
doi = (char *)malloc(dim*sizeof(char));
memcpy(doi, "n", 1);
while (i != strlen(s))
{
switch (cadru)
{
case 0:
while (s[i] != '"' && i != strlen(s) && (s[i] < '0' || s[i] > '9'))
{
if (s[i] == '}' && ok == 0)
{
ok = 1;
//memcpy(doi, doi + 1, strlen(doi));
fprintf(g, "\n%s", doi + 1);
}
if (s[i] == '{' && ok == 1)
{
fprintf(g, "\n");
}
i++;
}
cadru = 1;
break;
case 1:
if (s[i] == '"')
{
i++;
while (s[i] != '"')
{
if (count % 2 == 0 && ok == 0)
strncat(doi, s + i, 1);
else if((ok == 1 && count % 2 == 0) || (ok == 0 && count % 2 == 1)) fprintf(g, "%c", s[i]);
i++;
}
i++;
}
else
while (s[i] >= '0' && s[i] <= '9' && i != strlen(s))
{
if (count % 2 == 0 && ok == 0)
strncat(doi, s + i, 1);
else fprintf(g, "%c", s[i]);
i++;
}
if (count % 2 == 0 && ok == 0)
strcat(doi, ",");
else if(count % 2 == 0 || (count % 2 == 1 && ok == 0)) fprintf(g, ",");
count++;
cadru = 0;
break;
}
}
fprintf(g, "\n");
fclose(f);
fclose(g);
return 0;
}