Cod sursa(job #1342353)

Utilizator radutomaRADU TOMA radutoma Data 13 februarie 2015 21:22:03
Problema Convertor Scor 20
Compilator c Status done
Runda rosedu_cdl_2015 Marime 1.57 kb
#include<stdio.h>
#include<string.h>
#include<ctype.h>

int infor(char *a)
{
    int i;
    for (i=0;i<strlen(a);i++)
       if (( a[i]!=' ')&&(a[i]!='\n'))  return 1;
    return 0;
}

int main()
{
     FILE * citire;
     FILE *afisare;
    char text[1025];
    char *taiat;
    char save[1025];
    citire=fopen("convertor.in","r");
    afisare=fopen("convertor.out","w");
    int i,j;
    int s=0;
    char token[1025][1025];

    while (fgets(text,1025,citire))
     {

        taiat=strtok(text,":,{}] [\n");

        while(taiat!=NULL)
            {
               if(infor(taiat)==1&&taiat!=NULL)
                      strcpy(token[s++],taiat);
                taiat=strtok(NULL,":,}]{[\n");

            }
      }

    for (i=0;i<s;i++)
      { strcpy(save,token[i]);
        strcpy(token[i]," ");
        strcat(token[i],save);

        if (strchr(token[i],'"')!=NULL)
         {
          taiat=strtok(token[i],"\"\n");
          taiat=strtok(NULL,"\"");
          strcpy(token[i],taiat);
         }
        else
         {
           taiat=strpbrk(token[i],"0123456789");
           strcpy(token[i],taiat);
         }
       }
    int lungime=0;
    for (i=2;i<s;i=i+2)
    if (strcmp(token[i],token[0])==0)
       { lungime=i;break;}

    for (i=0;i<lungime;i=i+2)
         fprintf(afisare,"%s,",token[i]);
         fprintf(afisare,"\n");
    for(i=0;i<s/lungime;i++)

      {
        for(j=1;j<lungime;j=j+2)
           fprintf(afisare,"%s,",token[i*lungime+j]);
        fprintf(afisare, "\n");
      }


return 0;
}