to delete the '\0' characters

Jesse Phillips Jesse.K.Phillips+D at gmail.com
Fri Sep 23 14:38:35 UTC 2022


On Friday, 23 September 2022 at 08:50:42 UTC, Salih Dincer wrote:
> On Thursday, 22 September 2022 at 21:49:36 UTC, Ali Çehreli 
> wrote:
>> On 9/22/22 14:31, Salih Dincer wrote:
>>
>> If you have multiple '\0' chars that you will continue looking 
>> for, how about the following?
>
> It can be preferred in terms of working at ranges.  But it 
> isn't useful in terms of having more than one character and 
> moving away from strings. For example:
>
> ```d
>     auto data = [ "hello", "and", "goodbye", "world" ];
>     auto hasZeros = data.joiner("\0\0").text; // ("hello\0\0", 
> "and\0\0", "goodbye\0\0", "world\0\0")
>
>     assert(hasZeros.count('\0') == 7);
>     assert(hasZeros.splitz.walkLength == data.length * 2 - 1);
>
>     auto range = hasZeros.splitz; // ("hello", "", "and", "", 
> "goodbye", "", "world")
> ```
> SDB at 79


You should be explicit with requirements. It was hard to tell if 
you original code was correct.

```d
auto splitz(string s) {
     return s.splitter('\0')
    .filter!(x => !x.empty);
}
```


More information about the Digitalmars-d-learn mailing list