Cod sursa(job #1348343)
Utilizator | Data | 19 februarie 2015 17:28:07 | |
---|---|---|---|
Problema | Convertor | Scor | 60 |
Compilator | c | Status | done |
Runda | rosedu_cdl_2015 | Marime | 2.46 kb |
#include <stdio.h>
#include <string.h>
int main()
{ char token[1025][1025];
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;
while((c=fgetc(citire))!=EOF)
{ if(c=='"')
if(inreg==0)
{
inreg=1;poz=0;
}
else {
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
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)
{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; }
}
fclose(afisare);
return 0;
}