Pagini recente » Cod sursa (job #1373244) | Cod sursa (job #448250) | Cod sursa (job #2052674) | Cod sursa (job #307617) | Cod sursa (job #1345056)
#include <stdio.h>
#include <stdlib.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')
{ strcpy(aux,text+i);
strcpy(text,aux);
break;
}
for(i=0;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");
if(citire==0) exit(1);
afisare=fopen("convertor.out","w");
char text[1025];
char *token[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)
{
token[s]=strdup(aux);s++;
}
else if(var==2)
{ extract(aux);
var=inf(aux);
if(var==1)
{
token[s]=strdup(aux);s++;
}
}
aux=strtok(NULL,"\"");
}
}
int i,j;
int lungime;
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;
}