Biggest problems w/ D - strings
Derek Parnell
derek at psych.ward
Sat Aug 11 03:07:51 PDT 2007
On Fri, 10 Aug 2007 17:49:01 -0400, C. Dunn wrote:
>
> I have a field of n chars stored on disk. It holds a
> null-terminated string, padded with zeroes.
> It is amazingly difficult to compare such a char[n]
> with some other char[] (which, by the dictates of D,
> may or may not be null-terminated).
You could try this simpler method ...
import std.string;
// Return a slice of the leftmost portion of 'x'
// up to but not including the first 'c'
string lefts(string x, char c)
{
int p;
p = std.string.find(x,c);
if (p < 0)
p = x.length;
return x[0..p];
}
int compare(string lhs, string rhs, char d = '\0')
{
return std.string.cmp( lefts(lhs,d), lefts(rhs,d) );
}
and use it like ...
char[32] NameA;
char[56] NameB;
NameA[] = ' ';
NameB[] = ' ';
NameA[0..5] = "derek";
NameB[0..7] = "parnell";
result = compare(NameA, NameB);
--
Derek Parnell
Melbourne, Australia
skype: derek.j.parnell
More information about the Digitalmars-d
mailing list