Cod sursa(job #1345141)

Utilizator radutomaRADU TOMA radutoma Data 17 februarie 2015 12:18:44
Problema Convertor Scor 40
Compilator c Status done
Runda rosedu_cdl_2015 Marime 1.69 kb
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#include<ctype.h>
int inf(char *text)
{
    int i;
    for (i=0;i<strlen(text);i++)
            if(isalnum(text[i])) return 1;
            else  if(text[i]==':')
            return 2;
    return 0;
}
void extract(char *text)
{   int i;
    char aux[100];
    for(i=0;i<strlen(text);i++)
        if ((text[i]<='9'&&text[i]>='0')||text[i]=='-')
        {      strcpy(aux,text+i);
               strcpy(text,aux);
               break;
        }
for(i=1;i<strlen(text);i++)
    if (text[i]>'9'||text[i]<'0')
    { text[i]='\0';break;
    }
}
int main()
{
   FILE * citire;
   FILE * afisare;
   citire=fopen("convertor.in","r");
   if(citire==0) exit(1);
   afisare=fopen("convertor.out","w");
   char text[1025];
   char *token[1025];
   char *aux;
   int s=0;
   while(fgets(text,1025,citire))

   {
       aux=strtok(text,"\"");

   while(aux!=NULL)
   {
       int var;
       var=inf(aux);
       if(var==1)

       {
           token[s]=strdup(aux);s++;
       }
       else if(var==2)
       { extract(aux);
          var=inf(aux);
         if(var==1)
           {
           token[s]=strdup(aux);s++;
           }
       }
       aux=strtok(NULL,"\"");
   }
   }
int i,j;

int lungime;
    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");
      }

      fclose(afisare);
    return 0;

}