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

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

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

AnsiString a = "D8";
char sz;

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

char sz = 0xD8;

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

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

3

Решение

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

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

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

2

Другие решения

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

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

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

2

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

unsigned char sz = (unsigned char) std::stoul(a, 0, 16);
1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector