Problem while copy Array Element to variable

Ali Çehreli via Digitalmars-d digitalmars-d at puremagic.com
Tue Jul 25 10:11:37 PDT 2017


On 07/25/2017 09:14 AM, Zaheer Ahmed wrote:
 > My Dynamic array completely work good but when assign it's one index to
 > a variable, it's saves ASCII of that index.
 > writeln(myarray); // output 24
 > var = myarray[0]; // it assign 50 to var
 > Why changed to ASCII and how to get rid of.

First, just to remind you that this question would be more helpful on 
the Learn forum. :)

You're not showing any code so I try to reproduce the issue:

import std.stdio;

void main() {
     auto myarray = "24";
     writeln(myarray); // output 24
     int var;
     auto var = myarray[0]; // it assign 50 to var
     writeln(var);
}

myarray[0] has the value 50 because 50 is the ASCII code of '2'.

The reason var gets 50 in the above scenario is because var is an int. 
If you want to get char '2' (of course still with the value 50), you can 
make it char:

    char var;

On the other hand, if you want to get the integer value 2, there is the 
trick of subtracting the value of '0' from it:

     var = myarray[0] - '0';

var now has value 2.

Ali



More information about the Digitalmars-d mailing list