Pagini recente » Cod sursa (job #2888976) | Cod sursa (job #3221840) | Cod sursa (job #307628) | Cod sursa (job #2040672) | Cod sursa (job #1341098)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int i,n,j,m,p,k,v[2000],ok=0,x,o,z=0;
char *cuvinte,**cuvant,*temp,cuvant2[10000][100],tmp[30000],cuvant3[10000][100];
cuvinte=(char*)malloc(40000*sizeof(char));
FILE * f=fopen("convertor.in","r");
fgetc(f);
fgets(cuvinte,5028,f);
fclose(f);
cuvant=(char**)malloc(10000*sizeof(char*));
for(i=0;i<10000;i++)
cuvant[i]=(char*)malloc(50*sizeof(char));
temp=(char*)malloc(10000*sizeof(char));
temp=strtok(cuvinte," }:][{,");
i=0;
while(temp!=NULL)
{
cuvant[i]=temp;
temp=strtok(NULL, " }:][{,");
i++;
}
n=i;
for(i=0;i<n;i++)
{
if(i==0)
strcpy(tmp,cuvant[i]);
else
{
strcat(tmp," ");
strcat(tmp,cuvant[i]);
}
}
m=0;
for(i=0;i<strlen(tmp);i++)
{
if(tmp[i]==34)
{
v[m]=i;
m++;
}
}
for(i=0;i<100;i++)
strcpy(cuvant2[i]," ");
k=-1;p=0;o=0;
for(i=0;i<m;i+=2)
{
for(j=v[i]+1;j<v[i+1];j++)
{
cuvant2[p][++k]=tmp[j];
if(j==v[i+1]-1)
cuvant2[p][k+1]='\0';
}
if(v[i+2]-v[i+1]!=2)
{
for(x=v[i+1]+2;x<v[i+2]-1;x++)
{
cuvant2[p+1][o]=tmp[x];
o++;
ok=1;
if(x==v[i+2]-3)
cuvant2[p+1][o+1]='\0';
}
}
if(ok==0)
p++;
if(ok==1)
{
p+=2;
ok=0;
o=0;
}
k=-1;
}
ok=0;k=0;z=0;
for(i=0;i<p;i++)
{
for(j=i;j<p;j++)
{
if(strcmp(cuvant2[i],cuvant2[j])==0)
ok++;
}
if(ok>1)
{
for(m=0;m<k;m++)
{
if(strcmp(cuvant2[i],cuvant3[m])==0)
z++;
}
if(z==0)
{
strcpy(cuvant3[k],cuvant2[i]);
k++;
}
z=0;
}
ok=0;
}
ok=0;
for(i=0;i<p;i++)
{
for(j=0;j<k;j++)
{
if(strcmp(cuvant2[i],cuvant3[j])==0)
{
ok++;
}
}
if(ok==0)
{
strcpy(cuvant3[k],cuvant2[i]);
k++;
}
ok=0;
}
FILE * fa=fopen("convertor.out","w");
for(i=0;i<k;i++)
{
fprintf(fa,"%s,",cuvant3[i]);
}
return 0;
}