Thread overview
My new least favorite one-liner...
Nov 05, 2011
Jude Young
Nov 05, 2011
Vladimir Panteleev
Nov 05, 2011
bearophile
Nov 06, 2011
Jude Young
Nov 07, 2011
Regan Heath
Nov 07, 2011
Dejan Lekic
November 05, 2011
icon = *(toStringz(text(num)));

icon is a char, num is an integer.
I don't suppose there is an easier way to do this?

It's too late and ma brains is mushy.


November 05, 2011
On Sat, 05 Nov 2011 10:29:36 +0200, Jude Young <10equals2@gmail.com> wrote:

> icon = *(toStringz(text(num)));
>
> icon is a char, num is an integer.
> I don't suppose there is an easier way to do this?
>
> It's too late and ma brains is mushy.

If I understood the problem correctly:

icon = text(num)[0];

-- or --

icon = cast(char)('0' + num);

-- 
Best regards,
 Vladimir                            mailto:vladimir@thecybershadow.net
November 05, 2011
Jude Young:

> icon = *(toStringz(text(num)));
> 
> icon is a char, num is an integer.

Are you trying to convert a single-digit number?

import std.stdio;
void main() {
    int x = 5; // in [0 .. 10]
    char c = cast(char)(x + '0');
    writeln(c);
}

Bye,
bearophile
November 06, 2011
Nice.  Exactly what I was looking for.
I knew I was missing something tiny.

Now I just need to figure out why that works and I can say I've learned
something!
Thanks guys,
Jude

On Sat, Nov 5, 2011 at 5:38 AM, bearophile <bearophileHUGS@lycos.com> wrote:

> Jude Young:
>
> > icon = *(toStringz(text(num)));
> >
> > icon is a char, num is an integer.
>
> Are you trying to convert a single-digit number?
>
> import std.stdio;
> void main() {
>    int x = 5; // in [0 .. 10]
>    char c = cast(char)(x + '0');
>    writeln(c);
> }
>
> Bye,
> bearophile
>


November 07, 2011
On Sun, 06 Nov 2011 04:39:28 -0000, Jude Young <10equals2@gmail.com> wrote:
> Nice.  Exactly what I was looking for.
> I knew I was missing something tiny.
>
> Now I just need to figure out why that works and I can say I've learned
> something!
> Thanks guys,
> Jude
>
> On Sat, Nov 5, 2011 at 5:38 AM, bearophile <bearophileHUGS@lycos.com> wrote:
>
>> Jude Young:
>>
>> > icon = *(toStringz(text(num)));
>> >
>> > icon is a char, num is an integer.
>>
>> Are you trying to convert a single-digit number?
>>
>> import std.stdio;
>> void main() {
>>    int x = 5; // in [0 .. 10]
>>    char c = cast(char)(x + '0');
>>    writeln(c);
>> }

You've also got std.ascii.digits which is "0123456789" and std.string.digits which is an alias of it, so you can say:

import std.ascii; (or std.string)

int x = 5;
char c = std.ascii.digits[x];

-- 
Using Opera's revolutionary email client: http://www.opera.com/mail/
November 07, 2011
Regan Heath wrote:

> You've also got std.ascii.digits which is "0123456789" and std.string.digits which is an alias of it, so you can say:
> 
> import std.ascii; (or std.string)
> 
> int x = 5;
> char c = std.ascii.digits[x];
> 

I used similar solution to bearophile's before. I must admit i did not know about std.ascii.digits[], thanks for the info Regan.