Cod sursa(job #1349378)
Utilizator | 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;
}