如何将 AnsiString 转换为 char?
How to cast AnsiString to char?
让我烦恼的是转换。我正在使用 C++ Rad Studio XE8(不要问我为什么必须这样做)。
我有变量
AnsiString a = "D8";
char sz;
我希望sz
看起来像这样
char sz = 0xD8;
如何将 AnsiString
a
转换为 char
以便 sz
最终等于 0xD8
?
我尝试了 memcpy
、strcpy
等,但找不到解决方案。
一种方法是:
unsigned char sz = strtol( a.c_str(), NULL, 16 );
请注意 unsigned char
更可取,因为 plain char 已签名,而 0xD8
超出了 plain char 的范围。
试试这个:
unsigned char sz = (unsigned char) std::stoul(a, 0, 16);
更"C++Builder-ish"的方法是
unsigned char sz = StrToInt("0x" + a);
尽管它会进行不必要的内存分配。
让我烦恼的是转换。我正在使用 C++ Rad Studio XE8(不要问我为什么必须这样做)。
我有变量
AnsiString a = "D8";
char sz;
我希望sz
看起来像这样
char sz = 0xD8;
如何将 AnsiString
a
转换为 char
以便 sz
最终等于 0xD8
?
我尝试了 memcpy
、strcpy
等,但找不到解决方案。
一种方法是:
unsigned char sz = strtol( a.c_str(), NULL, 16 );
请注意 unsigned char
更可取,因为 plain char 已签名,而 0xD8
超出了 plain char 的范围。
试试这个:
unsigned char sz = (unsigned char) std::stoul(a, 0, 16);
更"C++Builder-ish"的方法是
unsigned char sz = StrToInt("0x" + a);
尽管它会进行不必要的内存分配。