2012-03-11 5 views
1

У меня есть код:Преобразовать WCHAR строку в нижний регистр C

WCHAR * cmp = L"TEST"; 

Нужна функция, которая будет возвращать эту строку в нижнем регистре!

Спасибо!

+0

Удачи, изменив этот строковый литерал с прогнозируемым результатом. – dreamlax

+0

Вот функция, которая возвращает строку в нижнем регистре: 'WCHAR * lowerCase (void) {return L" test "; } ' – dreamlax

+0

Возможный дубликат [Преобразование строки с широким символом в нижний регистр в C++] (http://stackoverflow.com/questions/1614595/converting-wide-char-string-to-lowercase-in-c) – ChrisWue

ответ

3

На основании WCHAR вы предположительно используете (некоторую версию) VC++. В этом случае вы хотите использовать _wcslwr или _wcslwr_s. Вы обычно делаете не хотите использовать tolower или toupper на широком символе строки.

+1

Возможно, он захочет использовать '_wcslwr': P Вы также можете добавить, что' towlower' и 'towupper' являются эквивалентами Unicode двух многобайтовых функций, о которых вы говорите. –

+0

@MikeKwan: ​​_wcslwr - это строки с широким символом, а не строки с несколькими байтами. Я считал, что упоминаю towlower, но я не помню, компилятор MS, включая его (хотя я не смотрел в то время - это, вероятно, сейчас). –

+0

Клянусь, я прочитал '_wcsupr' в вашем первоначальном ответе! 'towlower' включен в' 'или' '. –

Смежные вопросы