Pagini recente » Cod sursa (job #1347305) | Cod sursa (job #1759198) | Cod sursa (job #3201186) | Cod sursa (job #2630305) | Cod sursa (job #1360660)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char *s;
int i;
int u = 2000,d = 2000;
char *unu;
char *doi;
int ok = 0;
int cadru = 0;
int sir = 0;
s = (char *)malloc(1025*sizeof(char));
unu = (char *)malloc(u*sizeof(char));
doi = (char *)malloc(d*sizeof(char));
FILE *f = fopen("convertor.in", "r");
FILE *g = fopen("convertor.out", "w");
memcpy(unu, "n", 1);
memcpy(doi, "n", 1);
while (fgets(s, 1025, f))
{
i = 0;
if (cadru == 1 || cadru == 3) cadru--;
/*if (ok == 0)
{
u = u + strlen(s) + 1;
d = d + strlen(s) + 1;
unu = (char *)realloc(unu, u * sizeof(char));
doi = (char *)realloc(doi, d * sizeof(char));
}*/
while (i != strlen(s))
{
switch (cadru)
{
case 0:
while (s[i] != '"' && i != strlen(s))
{
if (s[i] == '}' && ok == 0)
{
ok = 1;
memcpy(unu, unu + 1, strlen(unu) + 1);
memcpy(doi, doi + 1, strlen(doi) + 2);
fprintf(g, "%s\n%s", unu, doi);
}
if (s[i] == '{' && ok == 1)
{
fprintf(g, "\n");
}
i++;
}
cadru = 1;
break;
case 1:
while (s[i] != '"' && i != strlen(s))
i++;
i++;
while (s[i] != '"' && i != strlen(s))
{
if (ok == 0)
strncat(unu, s + i, 1);
i++;
}
cadru = 2;
if (ok == 0)
strcat(unu, ",");
i++;
break;
case 2:
while (s[i] != '"' && (s[i] < '0' || s[i] > '9') && i != strlen(s))
i++;
if (s[i] == '"') sir = 1;
cadru = 3;
break;
case 3:
if (sir == 1)
{
sir = 0;
i++;
while (s[i] != '"')
{
if (ok == 0)
strncat(doi, s + i, 1);
else fprintf(g, "%c", s[i]);
i++;
}
i++;
}
else
{
while (s[i] >= '0' && s[i] <= '9' && i != strlen(s))
{
if (ok == 0)
strncat(doi, s + i, 1);
else fprintf(g, "%c", s[i]);
i++;
}
}
if (ok == 0)
strcat(doi, ",");
else
{
fprintf(g, ",");
}
cadru = 0;
break;
}
}
}
fprintf(g, "\n");
fclose(f);
fclose(g);
return 0;
}