如何将AnsiString转换为char?

时间:2015-12-02 23:31:42

标签: c++ type-conversion c++builder-xe8

令我不安的是转换。我正在使用C ++ Rad Studio XE8(不要问为什么我必须这样做。)

我有变量

bash

我希望AnsiString a = "D8"; char sz; 看起来像这样

sz

如何将char sz = 0xD8; AnsiString投射到a,以便char最终等同于sz

我已尝试过0xD8memcpy等,但却找不到解决方案。

3 个答案:

答案 0 :(得分:2)

一种方法是:

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

请注意,unsigned char是首选,因为普通字符已签名,0xD8超出普通字符范围。

答案 1 :(得分:2)

更多“C ++ Builder-ish”这样做的方法是

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

虽然它会进行不必要的内存分配。

答案 2 :(得分:1)

试试这个:

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