Pagini recente » Cod sursa (job #1928665) | Cod sursa (job #1088706) | Cod sursa (job #1219608) | Cod sursa (job #1150392) | Cod sursa (job #1360420)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char *rand = calloc(1024,sizeof(char));
char **cuvinte = calloc(10128,sizeof(char*));
char **head =calloc(10128,sizeof(char*));
int i,j,k;
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;
else
{k++;
head[k] = malloc(1024 * sizeof(char));
strcpy(head[k], p);//k++;
}
}
else if (i%2==1)
{ j++;
cuvinte[j] = malloc(1024 * sizeof(char));
strcpy(cuvinte[j], p);
//j++;
}
i++;
}
p = strtok(NULL,"[{}]\"\n\t");
}
}
free(p); free(rand);
for (i =1 ;i<=k;i++)
fprintf(g,"%s,",head[i]);
fprintf(g,"\n");
for (i =1 ;i<=j;i++)
if (i%k==0)
fprintf(g,"%s,\n",cuvinte[i]);
else fprintf(g,"%s,",cuvinte[i]);
/*k = 1;
fprintf(g, "%s,", cuvinte[0]);
for ( j = 2; j < i; j += 2)
if (strcmp(cuvinte[j], cuvinte[0]) != 0)
{
fprintf(g,"%s,",cuvinte[j]);
k++;
}
else {
fprintf(g, "\n");
break;
}
int q = 1;
for (j = 1; j < i; j = j + 2)
{
fprintf(g, "%s,",cuvinte[j]);
q++;
if (((q - 1) % k == 0)&&(j<i-1))
{
q = 1;
fprintf(g, "\n");
}
}*/
fclose(f);
fclose(g);
for (i = 1;i <= j;i++)
{printf("'%s'\n",cuvinte[i]);free(cuvinte[i]);}
free(cuvinte);
return 0;
}