Pagini recente » Cod sursa (job #614585) | Cod sursa (job #2122217) | Cod sursa (job #695406) | Cod sursa (job #1223674) | Cod sursa (job #1345213)
#include <stdio.h>
#include<string.h>
#include<ctype.h>
int inf(char *text)
{
int i;
for (i=0;i<strlen(text);i++)
if(isalnum(text[i])) return 1;
else if(text[i]==':')
return 2;
return 0;
}
void extract(char *text)
{ int i;
char aux[100];
for(i=0;i<strlen(text);i++)
if ((text[i]<='9'&&text[i]>='0')||text[i]=='-')
{ strcpy(aux,text+i);
strcpy(text,aux);
break;
}
for(i=1;i<strlen(text);i++)
if (text[i]>'9'||text[i]<'0')
{ text[i]='\0';break;
}
}
int main()
{
FILE * citire;
FILE * afisare;
citire=fopen("convertor.in","r");
afisare=fopen("convertor.out","w");
char text[1025];
char token[1025][1025];
char *aux;
int s=0;
while(fgets(text,1025,citire))
{
aux=strtok(text,"\"");
while(aux!=NULL)
{
int var;
var=inf(aux);
if(var==1)
{
strcpy(token[s],(aux));s++;
}
else if(var==2)
{ extract(aux);
var=inf(aux);
if(var==1)
{
strcpy(token[s],(aux));s++;
}
}
aux=strtok(NULL,"\"");
}
}
unsigned int i,j,lungime=1;
for (i=2;i<s;i=i+2)
if (strcmp(token[i],token[0])==0)
{ lungime=i;break;}
for (i=0;i<lungime;i=i+2)
fprintf(afisare,"%s,",token[i]);
fprintf(afisare,"\n");
for(i=0;i<s/lungime;i++)
{
for(j=1;j<lungime;j=j+2)
fprintf(afisare,"%s,",token[i*lungime+j]);
fprintf(afisare, "\n");
}
fclose(afisare);
return 0;
}