On Friday, 24 November 2023 at 09:35:00 UTC, BoQsc wrote:
I tried to look into https://dlang.org/phobos/std_conv.html

Most of the functions inside `std.conv` seem to be dependant on [Garbage Collection](https://dlang.org/spec/garbage.html).

And I couldn't find a straightforward way to produce a `string` value out of `uint` value.

How to convert or parse `uint` value to a `string` in `@nogc` way?

I guess there are third-party libraries doing this. One would use stdc functions such as sprintf. Probably, there should be a more d-ish way.
```
import core.stdc.stdio : sprintf;
import core.stdc.math : log10;

import std.exception : assumeUnique;
import std.stdio : writeln;

    size_t nod(int num){
      return cast(size_t)((num==0)?1:log10(num)+1);
    }

    void main()
    {
       int myint = 23;

       char[80] str;

       sprintf(str.ptr, "%d", myint);

       string _dstring = str[0..nod(myint)].assumeUnique;

       writeln(_dstring);

}
```

Reply via email to