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.

Reply via email to