Cod sursa(job #1349669)

Utilizator radutomaRADU TOMA radutoma Data 20 februarie 2015 13:14:05
Problema Convertor Scor 60
Compilator c Status done
Runda rosedu_cdl_2015 Marime 2.79 kb
#include <stdio.h>
#include <string.h>

int main()
{   char token[1000][100];
    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=='-'))

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

                     poz++;

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

            }
            else if(inreg==1)

                       {
                           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 {

                        token[s][poz]='\0'; 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=='-'))

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

                }

       }
     fclose(afisare);
    return 0;

}