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);
}
```