Pagini recente » Profil teodora_cristina | Cod sursa (job #1991391) | Istoria paginii utilizator/veverita927 | Cod sursa (job #962969) | Cod sursa (job #1360445)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char *rand = calloc(1024,sizeof(char));
char **head =calloc(10128,sizeof(char*));
char **cuvinte =calloc(10128,sizeof(char*));
int i,j,k,q;
FILE *f = fopen("convertor.in","r");
i=0;
FILE *g = fopen("convertor.out","w");
char *p=calloc(1024,sizeof(char));int ok= 1;k=0;j=0;
while (!feof(f))
{
fgets(rand,1024,f);
p = strtok(rand, "[{}]\"\n\t");
while (p != NULL)
{
p[strlen(p)]='\0';
while ((p[0]==' ')||(p[0]==':'))
{
memcpy(p,p+1,strlen(p)-1);
p[strlen(p)-1]='\0';
}
while ((p[strlen(p)-1]==' ')||(p[strlen(p)-1]==','))
{
p[strlen(p)-1]='\0';
}
if (strlen(p)>0)
{
if ((i%2==0) && ok)
{
if ((k>0)&&(strcmp(p,head[1])==0))
{
ok=0;
for (q=1 ;q<=k;q++)
fprintf(g,"%s,",head[q]);
fprintf(g,"\n");
}
else
{
k++;
head[k] = malloc(1024 * sizeof(char));
strcpy(head[k], p);//k++;
}
}
else if (i%2==1)
{
if (ok)
{
j++;
cuvinte[j] = malloc(1024 * sizeof(char));
strcpy(cuvinte[j], p);
}
else
if (j==k)
{for (q=1 ;q<=k;q++)
fprintf(g,"%s,",cuvinte[q]);
fprintf(g,"\n");
j=1;
strcpy(cuvinte[j], p);}
else
{j++;
strcpy(cuvinte[j], p);}
}
i++;
}
p = strtok(NULL,"[{}]\"\n\t");
}
}
for (q=1 ;q<=k;q++)
fprintf(g,"%s,",cuvinte[q]);
fprintf(g,"\n");
free(p); free(rand);
fclose(f);
fclose(g);
return 0;
}