digitalmars.D - Problem while copy Array Element to variable
- Zaheer Ahmed (5/5) Jul 25 2017 My Dynamic array completely work good but when assign it's one
- =?UTF-8?Q?Ali_=c3=87ehreli?= (22/27) Jul 25 2017 First, just to remind you that this question would be more helpful on
- =?UTF-8?Q?Ali_=c3=87ehreli?= (4/6) Jul 25 2017 Remove that 'auto' please. Apparently, I edited my message instead of
- Zaheer Ahmed (4/32) Jul 25 2017 I got this with var = myarray[0] - '0'; without this I have to
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.
Jul 25 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
Jul 25 2017
On 07/25/2017 10:11 AM, Ali Çehreli wrote:int var; auto var = myarray[0]; // it assign 50 to varRemove that 'auto' please. Apparently, I edited my message instead of code. :p Ali
Jul 25 2017
On Tuesday, 25 July 2017 at 17:11:37 UTC, Ali Çehreli wrote:On 07/25/2017 09:14 AM, Zaheer Ahmed wrote:I got this with var = myarray[0] - '0'; without this I have to manually pollute my code. Thanks for Solution & also for writing Book on D Lang.My Dynamic array completely work good but when assign it'sone index toa 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
Jul 25 2017