May 18, 2004
In std.string toString(char x ) is :

char[] toString(char c)
{
char[] result = new char[2];
result[0] = c;
result[1] = 0;
return result;
}


Whats with that null char ?  Should this be toStringz ?

Anyway this is failing :

char [] f = "Fizzle";
char [] newF;
foreach ( char x;f ) {
newF ~= std.string.toString(x);
}
printf("%.*s",newF);

Only prints 'F'

however this works

char [] f = "Fizzle";
char [] newF;
foreach ( char x;f ) {
newF ~= std.string.toString(x)[0 .. 1];
}
printf("%.*s",newF);



Thanks,
C


May 26, 2004
"Charlie" <Charlie_member@pathlink.com> wrote in message news:c8dr4m$24oe$1@digitaldaemon.com...
> In std.string toString(char x ) is :
>
> char[] toString(char c)
> {
> char[] result = new char[2];
> result[0] = c;
> result[1] = 0;
> return result;
> }
>

I'm guessing it was done that way to make it easier to use with C functions: toStringz() wouldn't need to copy it; but whoever wrote it forgot to just return a slice of the first char. I didn't even know that function existed. Obvious fix that needs to be made:

char[] toString(char c)
{
   char[] result = new char[2];
   result[0] = c;
   result[1] = 0;
   return result[0 .. 1];
}