C ++: Chr () и unichr () эквивалентны? - PullRequest
3 голосов
/ 31 мая 2010

Я мог бы поклясться, что использовал функцию chr() 40 минут назад, но не могу найти файл. Я знаю, что он может доходить до 256, поэтому я использую это:

std::string chars = "";
chars += (char) 42; //etc

Так что все в порядке, но я действительно хочу получить доступ к символам Юникода. Могу ли я сделать (w_char) 512? Или, может быть, что-то вроде функции unichr() в python, я просто не могу найти способ получить доступ к любому из этих символов.

Ответы [ 2 ]

4 голосов
/ 31 мая 2010

Тип символов Unicode, вероятно, wchar_t в вашем компиляторе. Кроме того, вы захотите использовать std::wstring для хранения широкой строки.

std::wstring chars = L"";
chars += (wchar_t) 442; //etc
2 голосов
/ 31 мая 2010

Почему вы захотите сделать это вместо «х» или каков персонаж? L'x 'для широких символов.

Однако, если у вас есть острая необходимость, вы можете сделать (wchar_t) 1004. wchar_t может быть 16-битным (обычно Visual Studio) или 32-битным (обычно GCC). C ++ 0x поставляется с char16_t и char32_t и std :: u16string.

...