雖然我很了解 C,但在 C /CLI 中將char 陣列復制到System::String(不是 C )時遇到問題。std::string
我(第一次)使用 Visual Studio 及其拖放表單設計功能來創建 C Windows GUI 程式。該程式主要作業,但我無法將 char 陣列(使用創建sprintf)復制到 a System::String(許多 Visual Studio 控制元件使用的型別)。
我試著寫這個函式:
private: System::String^ cts(char *aa) { // convert char[] to String
int i;
String^ s;
s = "";
for (i = 0; aa[i]; i )
s = s aa[i];
return s;
}
但是 cts("h") 回傳“104”(小寫 h 的 ASCII 碼),我希望它以字串格式回傳“h”。
幫助將不勝感激。
uj5u.com熱心網友回復:
System::String有一個接受 a 的建構式const char*。
因此,您所要做的就是使用gcnew創建一個新System::String的const char*作為引數傳遞(achar*也可以傳遞)。
請看下面的代碼:
System::String^ cts(const char *aa)
{
return gcnew System::String(aa);
}
int main()
{
System::String ^ system_str = cts("abcd");
System::Console::WriteLine(system_str);
return 0;
}
輸出:
abcd
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/494180.html
