Как привести AnsiString к символу?

Что меня беспокоит, так это конверсия. Я использую C++ Rad Studio XE8 (не спрашиваю, почему я должен был).

У меня есть переменные

AnsiString a = "D8";
char sz;

я хочу sz выглядеть так

char sz = 0xD8;

Как мне разыграть AnsiStringa в char чтобы sz в конечном итоге равняется 0xD8?

я пытался memcpy, strcpyи т.д. пока не смогли найти решения.

3 ответа

Решение

Одним из способов является:

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

Обратите внимание, что unsigned char предпочтительнее, потому что обычный символ подписан, и 0xD8 вне диапазона обычного символа.

Более "C++Builder-ish" способ сделать это

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

Хотя это сделает ненужное распределение памяти.

Попробуй это:

unsigned char sz = (unsigned char) std::stoul(a, 0, 16);
Другие вопросы по тегам