这太简单了,我不好意思问,但是如何在 D2 中将 c 字符串转换为 d 字符串?
我有两个用例。
string convert( const(char)* c_str );
string convert( const(char)* c_str, size_t length );
-
使用 std.string.toString(char*) (D1/Phobos) 或 std.conv.to!(string) (D2):
// D1
import std.string;
...
string s = toString(c_str);
// D2
import std.conv;
...
string s = to!(string)(c_str);
-
切片指针:
string s = c_str[0..len];
(不能使用“length”,因为它对于切片语法有特殊含义)。
两者都会返回 C 字符串的切片(因此,是引用而不是副本)。使用 .dup 属性创建副本。
请注意,D 字符串被视为采用 UTF-8 编码。如果您的字符串采用另一种编码,则需要对其进行转换(例如使用 std.windows.charset 中的函数)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)