如何将AnsiString强制转换为char

How to cast AnsiString to char?

本文关键字:转换 char AnsiString      更新时间:2023-10-16

我担心的是转换。我正在使用C++Rad Studio XE8(不要问为什么,因为我必须这么做)。

我有变量

AnsiString a = "D8";
char sz;

我希望sz看起来像这个

char sz = 0xD8;

如何将AnsiString a强制转换为char,使sz最终等于0xD8

我试过memcpystrcpy等,但都找不到解决方案。

一种方法是:

unsigned char sz = strtol( a.c_str(), NULL, 16 );

注意,unsigned char是优选的,因为纯字符是有符号的,并且0xD8在纯字符的范围之外。

一种更"C++Builder风格"的方法是

unsigned char sz = StrToInt("0x" + a);

尽管这会造成不必要的内存分配。

试试这个:

unsigned char sz = (unsigned char) std::stoul(a, 0, 16);