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:
https://dlang.org/phobos/std_string.html
```d
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];
}
return s;
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.