On Thursday, 30 December 2021 at 17:43:14 UTC, Tejas wrote:
I'm not at my computer anymore, could you please replace the `0x00` with `0x0A` and tell me if `strip` still doesn't work for my solution?

Ok.

I think the `fromstringz` is trimming the null bytes for you, making the `\n` the last character, allowing `strip` to work.

Yes, you are right:

```d
import std.stdio;
import std.string;

void main() {
ubyte[8] b1 = [0x68, 0x65, 0x6C, 0x6C, 0x6F, 0x0A, 0x00, 0x00]; ubyte[8] b2 = [0x68, 0x65, 0x6C, 0x6C, 0x6F, 0x0A, 0x0A, 0x0A];
    /* "hello\n\0\0" */

    char[] s1 = fromStringz(cast(char*)b1.ptr);
    writefln("'%s, world'", s1.strip);

    char[] s2 = cast(char[])b2[0 .. $];
    writefln("'%s, world'", s2.strip);
}
```

output:

```
mono:~/2-coding/d-lang/misc$ ./p
'hello, world'
'hello, world'
```

everything as needed.
thanks.

Reply via email to