Robert Fraser Wrote: > D. Reeds wrote: > > can anybody help me translate this c code into d, im using D1+tango combo. > > i'm new to D and got stucked on multi-dimension array part. > > > > int levenshtein_distance(char *s,char*t) > > //Compute levenshtein distance between s and t > > { > > //Step 1 > > int k,i,j,n,m,cost,*d,distance; > > n=strlen(s); > > m=strlen(t); > > if(n!=0&&m!=0) > > { > > d=malloc((sizeof(int))*(m+1)*(n+1)); > > m++; > > n++; > > //Step 2 > > for(k=0;k<n;k++) > > d[k]=k; > > for(k=0;k<m;k++) > > d[k*n]=k; > > //Step 3 and 4 > > for(i=1;i<n;i++) > > for(j=1;j<m;j++) > > { > > //Step 5 > > if(s[i-1]==t[j-1]) > > cost=0; > > else > > cost=1; > > //Step 6 > > d[j*n+i]=minimum(d[(j-1)*n+i]+1,d[j*n+i-1]+1,d[(j-1)*n+i-1]+cost); > > } > > distance=d[n*m-1]; > > free(d); > > return distance; > > } > > else > > return -1; //a negative return value means that one or both strings are > > empty. > > } > > > > int minimum(int a,int b,int c) > > //Gets the minimum of three values > > { > > int min=a; > > if(b<min) > > min=b; > > if(c<min) > > min=c; > > return min; > > } > > > > it is a levenshtein distance algorithm. > > Ummm... import tango.stdc.stdlib then copy & paste; that code should > work the same in D as in C. The only changes you should need are: > > int k,i,j,n,m,cost,*d,distance; > > Which should be changed to: > > int k,i,j,n,m,cost,distance; > int* d; > > And sizeof(int) -> int.sizeof
thank you very much.