11
這太簡單了,我很尷尬的問,但是如何將c字符串轉換爲D2中的d字符串?如何將c字符串轉換爲d字符串?
我有兩個用例。
string convert(const(char)* c_str);
string convert(const(char)* c_str, size_t length);
這太簡單了,我很尷尬的問,但是如何將c字符串轉換爲D2中的d字符串?如何將c字符串轉換爲d字符串?
我有兩個用例。
string convert(const(char)* c_str);
string convert(const(char)* c_str, size_t length);
使用std.string.toString(字符*)(D1 /火衛)或std.conv.to(字符串)(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」,因爲它與slice語法有特殊的含義)。
兩者都將在C字符串(因此,引用而不是副本)上返回一片。使用.dup屬性創建副本。
請注意,D字符串被認爲是UTF-8編碼。如果您的字符串是另一種編碼,則需要將其轉換(例如,使用std.windows.charset中的函數)。
'toString'在D2中已棄用。 – kennytm 2010-03-24 14:04:48
難道你不能'字符串s =新字符串(c_str);'或者我的C++知識褪色了嗎? – 2010-03-24 14:20:28
問題說D,而不是C++。 – 2010-03-24 14:43:52