Cod sursa(job #1349378)

Utilizator radutomaRADU TOMA radutoma Data 20 februarie 2015 10:17:22
Problema Convertor Scor 60
Compilator c Status done
Runda rosedu_cdl_2015 Marime 3.11 kb
#include <stdio.h>
#include <string.h>

int main()
{   char token[1000][1000];
    FILE *citire;
    FILE *afisare;
    char c;
    citire=fopen("convertor.in","r");
    afisare=fopen("convertor.out","w");
    unsigned int inreg=0,poz=0,inreg2=0;
    unsigned long int s=0,i;
    int lungime=1;
    while((c=fgetc(citire))!=EOF)
       { if(c!='"')
                {if(inreg==1) {token[s][poz]=c;poz++;}
             else
                if((c<='9'&&c>='0')||(c=='-')||(c=='+'))

                 {
                     inreg2=1;
                     token[s][poz]=c;

                     poz++;

                 }
                 else if(inreg2==1)
                    {s++;inreg2=0;}

                }
         else
            if(inreg==1)

                     {

                         if(s!=0) if(strcmp(token[0],token[s])==0)
                                   {    lungime=s;
                                        for (i=0;i<s;i=i+2)
                                        fprintf(afisare,"%s,",token[i]);
                                        fprintf(afisare,"\n");
                                        for (i=1;i<s;i=i+2)
                                        fprintf(afisare,"%s,",token[i]);
                                        fprintf(afisare,"\n");
                                        s++;poz=0;
                                        inreg=0;
                                        break;
                                   }

                        inreg=0;s++;poz=0;
                }
                else
                    {
                           inreg=1;
                           poz=0;
                       }


       }
    while((c=fgetc(citire))!=EOF)
       { if(c!='"')

           {


            if(inreg==1)
                {
                    if(s%2==1)
                     {
                        fprintf(afisare,"%c",c);
                     }
                }
             else
                if((c<='9'&&c>='0')||(c=='-')||(c=='+'))

                 {
                     inreg2=1;
                     fprintf(afisare,"%c",c);



                 }
                 else if(inreg2==1)
                    {
                        if(s%2==1)
                            fprintf(afisare,",");
                        if((s+1)%lungime==0)
                            fprintf(afisare,"\n");
                        s++;
                        inreg2=0;
                        }

           }

            else

                if(inreg==1)

                      {inreg=0;
                if(s%2==1) fprintf(afisare,",");
                if((s+1)%lungime==0)
                     fprintf(afisare,"\n");
                s++;
                }

                else
                    inreg=1;





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

}