Cod sursa(job #1349555)

Utilizator radutomaRADU TOMA radutoma Data 20 februarie 2015 12:08:52
Problema Convertor Scor 70
Compilator c Status done
Runda rosedu_cdl_2015 Marime 2.84 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==0)

                       {

                                token[s][poz]='\0'; inreg=1;poz=0;
                       }
                else {

                        if(s%2==0) 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");
                                        token[s][poz]='\0';
                                        s++;poz=0;
                                        inreg=0;
                                        break;
                                   }
                       token[s][poz]='\0';
                        inreg=0;s++;poz=0;
                }
         else
            if(inreg==1) {token[s][poz]=c;poz++;}
             else
                if((c<='9'&&c>='0')||(c=='-'))

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

                     poz++;

                 }
                 else if(inreg2==1)
                    {token[s][poz]='\0';
                    s++;inreg2=0;}



       }

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

                         inreg=1;

                else {inreg=0;
                if(s%2==1) fprintf(afisare,",");
                if((s+1)%lungime==0)
                     fprintf(afisare,"\n");
                s++;
                }
         else
            if(inreg==1)  {if(s%2==1) {fprintf(afisare,"%c",c);}}
             else
                if((c<='9'&&c>='0')||(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; }



       }
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;

}