Pagini recente » Cod sursa (job #371265) | Cod sursa (job #2883834) | Cod sursa (job #916409) | Cod sursa (job #1287279) | Cod sursa (job #1360380)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char *rand = calloc(1024,sizeof(char));
char **cuvinte = calloc(1024,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;;
while (!feof(f))
{
fgets(rand,1024,f);
p = strtok(rand, "[{}]\"\n\t");
while (p != NULL)
{
cuvinte[i] = malloc(1024 * sizeof(char));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)
{
strcpy(cuvinte[i], p);
i++;
}
p = strtok(NULL,"[{}]\"\n\t");
}
}
free(p); free(rand);
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 (j = 0;j < i;j++)
{printf("'%s'\n",cuvinte[j]);free(cuvinte[j]);}
free(cuvinte);
return 0;
}