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 did it this way ...

```
import std.stdio;

char[10] longToString(long n) @nogc
{
        char[10] x;
        ulong power;
        
        x[0] = '-'*(n<0);

        long t = (n<0)*-n + (n>0)*n ;

        while (n != 0)
        {
                power++;
                n /= 10;
        }
        
        power -= (x[0] != '-');
        
        while (t > 0)
        {
                x[power] = (t % 10) + '0';
                power--;
                t /= 10;
        }
        
        return x;
}


int main()
{
        long p = 12345;
        char[10] r = longToString(p);
        writeln(r);
        
        p = -12345;
        r = longToString(p);
        writeln(r);
        
        return 0;
}
```

Reply via email to