to delete the '\0' characters
anonymous at example.com
Thu Sep 22 11:14:58 UTC 2022
On 22.09.22 12:53, Salih Dincer wrote:
> Is there a more accurate way to delete the '\0' characters at the end of
> the string? I tried functions in this module:
> auto foo(string s)
> string r;
> foreach(c; s)
> if(c > 0)
> r ~= c;
> return r;
I don't understand what you mean by "more accurate".
Here's a snippet that's a bit shorter than yours and doesn't copy the data:
while (s.length > 0 && s[$ - 1] == '\0')
s = s[0 .. $ - 1];
But do you really want to allow embedded '\0's? I.e., should
foo("foo\0bar\0") really resolve to "foo\0bar" and not "foo"?
Usually, it's the first '\0' that signals the end of a string. In that
case you better start the search at the front and stop at the first hit.
More information about the Digitalmars-d-learn