On Monday, August 13, 2018 6:24:53 PM MDT Jonathan M Davis via Digitalmars- d-learn wrote: > On Monday, August 13, 2018 6:06:22 PM MDT zeus via Digitalmars-d-learn > > wrote: > > i have the following code in d and i get as result 4D77EB, also i > > have the following code in c++ wich give me as results > > 0xABCDEF123abcdef12345678909832190000011111111 how i can get in d > > 0xABCDEF123abcdef12345678909832190000011111111 instead of 4D77EB > > > > > > // D > > > > void test(string test){ > > > > char* testi = cast(char*)(test); > > writeln(testi); > > > > } > > > > > > void main() > > { > > > > test("0xABCDEF123abcdef12345678909832190000011111111"); > > > > } > > > > > > // C++ > > > > void test(string str){ > > > > const char* testi = str.c_str(); > > printf("%s\n", testi); > > > > } > > > > int main(int argc, char const *argv[]){ > > > > test("0xABCDEF123abcdef12345678909832190000011111111"); > > > > } > > Why are you casting the string to a char*? That's just going to make > writeln print out the pointer value. If you want to print out the value > of the string, then just pass the string to writeln.
I suppose that I should point out that you almost never want to use char* in D unless interacting with C or C++. Strings in D are not zero-terminated. They are dynamic arrays of characters. String literals do have a '\0' one past their end so that you can pass string literals to C functions which take const char*, and std.string.toStringz can be used to convert a string to a zero-terminated immutable(char)*, but in general, you just don't use zero-terminated strings in D, and writeln is far more flexible than printf, since it will accept pretty much any type. I'd suggest that you read the documentation for the writeln family of functions: https://dlang.org/phobos/std_stdio.html#.writeln https://dlang.org/phobos/std_stdio.html#.writefln https://dlang.org/phobos/std_stdio.html#.write https://dlang.org/phobos/std_stdio.html#.writef and the documentation for formattedWrite explains the flags accepted by the various functions that accept format strings (e.g. writefln or format): https://dlang.org/phobos/std_format.html#.formattedWrite - Jonathan M Davis