Pagini recente » Cod sursa (job #385794) | Cod sursa (job #2293804) | Cod sursa (job #474941) | Cod sursa (job #1877982) | Cod sursa (job #1342950)
#include<stdio.h>
FILE *f, *g;
char v[1025];
int stare = 1;
void automat_cheie(char c)
{
switch(stare)
{
case 1:
if (c == '"') stare = 2;
break;
case 2:
if (c == '"')
{
stare = 3;
fprintf(g, ",");
}
else
fprintf(g, "%c", c);
break;
case 3:
if (c == ',') stare = 4;
else if(c == '}') stare = 5;
break;
case 4:
if (c == '"') stare = 2;
break;
}
}
void automat_afis(char c)
{
switch(stare)
{
case 1:
if (c == '"') stare = 2;
break;
case 2:
if (c == '"') stare = 3;
break;
case 3:
if (c == '"') stare = 4;
else if(c >='0' && c<='9')
{
fprintf(g, "%c", c);
stare = 5;
}
break;
case 4:
if (c == '"')
{
fprintf(g, ",");
stare = 6;
}
else fprintf(g, "%c", c);
break;
case 5:
if (c == '"')
{
fprintf(g, ",");
stare = 2;
}
else if ( c == '}')
{
fprintf(g, ",");
stare = 7;
}
else if(c >='0' && c<='9') fprintf(g, "%c", c);
break;
case 6:
if (c == '"') stare = 2;
else if ( c == '}') stare = 7;
break;
case 7:
if (c == '{')
{
fprintf(g, "\n");
stare = 1;
}
break;
}
}
int main()
{
char c;
int k;
f = fopen("convertor.txt", "rt");
g = fopen("convertor.out", "wt");
while( stare !=5 && fscanf(f, "%c", &c) == 1 )
automat_cheie(c);
fseek( f , 0L, SEEK_SET);
fprintf(g, "\n");
if(stare == 5)
{
stare = 1;
while( fscanf(f, "%c", &c) == 1 )
automat_afis(c);
}
fclose(g);
fclose(f);
return 0;
}