Re: [問題]VC++ String^ 轉成 16進制的 unsigned c …

看板C_and_CPP (C/C++)作者 (好人超)時間16年前 (2010/06/30 20:58), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串1/1
※ 引述《metroways (qq)》之銘言: : 如題, : 小弟希望能夠將使用者在textbox輸入的"123ABCDF" (舉例), : 儲存成 : unsigned char key[] = {0x12 , 0x3A , 0xBC , 0xDF}, : 不知道,有什麼作法可以達到這個需求呢? : 感謝版友。 using namespace System; using namespace System::Globalization; int main(array<System::String ^> ^args) { String ^str = L"123ABCDF"; long l = long::Parse(str, NumberStyles::HexNumber); unsigned char *ptr = (unsigned char *)&l; for (int i = 3; i >= 0; i--) Console::WriteLine("ptr[{0}] = {1:X}", i, ptr[i]); return 0; } 輸出: ptr[3] = 12 ptr[2] = 3A ptr[1] = BC ptr[0] = DF 照這樣的想法,要再做倒過來擺還是其他的工作,應該都不困難了吧? 根據 loveme00835 板友在原文的推文,另外一種方法 int main(array<System::String ^> ^args) { String ^str = L"123ABCDF"; for (int i = 0; i < 4; i++) Console::WriteLine("{0:X}", Byte::Parse(str->Substring(i * 2, 2), NumberStyles::HexNumber)); return 0; } 其實更簡單耶...XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.117.171.46

06/30 21:04, , 1F
補充剛找到的網頁 : http://tinyurl.com/23mvqea
06/30 21:04, 1F
※ 編輯: james732 來自: 140.117.171.46 (06/30 21:06) ※ 編輯: james732 來自: 140.117.171.46 (06/30 21:09)

06/30 21:12, , 2F
用 .NET 庫好多 :: 符號, 不習慣 > <
06/30 21:12, 2F

06/30 21:14, , 3F
C#的話就一律用「.」了 不像C++分得這麼清楚...XD
06/30 21:14, 3F

06/30 21:19, , 4F
先謝過了,我測試看看,非常感謝~
06/30 21:19, 4F
文章代碼(AID): #1CApzxRp (C_and_CPP)
文章代碼(AID): #1CApzxRp (C_and_CPP)