Gbenbam Ответов: 2

Как CharUpper и CharLower используются для преобразования одного символа?


Документация находится здесь :


http://msdn.microsoft.com/en-us/library/windows/desktop/ms647467(v=против 85).aspx

говорит, что функция может конвертировать один символ, но каждый раз, когда я вызываю функцию с одним символом, я всегда получаю ошибку времени компиляции, указывающую, что требуется строка.

Пожалуйста, кто-нибудь может показать мне строку кода, которая иллюстрирует, как эти функции используются для преобразования символов?

2 Ответов

Рейтинг:
2

Pharago

Я также недавно был озадачен документацией по этому вопросу, вот две версии этой функции, обратите внимание, что это способ изменения букв без непосредственного использования ЭЛТ.

wchar_t nCharUpperW = LOWORD((DWORD)CharUpperW((LPWSTR)L'ñ'));
char nCharUpperA = LOBYTE(LOWORD((DWORD)CharUpperA((LPSTR)(WORD)'ñ')));

wchar_t nCharLowerW = LOWORD((DWORD)CharLowerW((LPWSTR)L'Ñ'));
char nCharLowerA = LOBYTE(LOWORD((DWORD)CharLowerA((LPSTR)(WORD)'Ñ')));


Рейтинг:
13

OriginalGriff

Посмотрите на описание:

"Строка с нулевым завершением или указывает один символ. Если слово высокого порядка этого параметра равно нулю, то слово низкого порядка должно содержать один символ для преобразования."
Так что все, что вам нужно сделать, это:

...  CharLower((LPTSTR) 'A');


Gbenbam

Поверьте мне, я читал это миллиард раз и никогда по-настоящему не понимал этого.Большое спасибо

OriginalGriff

Всегда пожалуйста!