我有一个标准的char指针,我试图强制转换为字符串。
// string to char*
char *x = cast(char*)("Hello World\0");
// char* to string?
string x = cast(string)x;
string x = cast(immutable(char)[])x;
错误!
如何将char *转换为D?
中的字符串答案 0 :(得分:14)
使用std.conv.to
将char*
转换为string
。使用std.string.toStringZ
走另一条路。
import std.string;
import std.stdio;
import std.conv;
void main()
{
immutable(char)* x = "Hello World".toStringz();
auto s = to!string(x);
writeln(s);
}
答案 1 :(得分:3)
如果你知道确切的长度,你可以这样做:
immutable(char)* cptr = obj.SomeSource();
int len = obj.SomeLength();
string str = cptr[0..len];
对于某些情况(如果字符串包含\0
),则需要。