Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

VC++. Замена русских букв

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> VC++. Замена русских букв
Имя
Сообщение << Старые топики   Новые топики >>
VC++. Замена русских букв - 2006-02-23 15:40:11   
rp9l3b

Сообщений: 179
Оценки: 0
Присоединился: 2006-02-23 14:11:07
Задача:
Пишем в IDC_INPUT русское(!) слово, а в IDC_OUTPUT получаем тоже самое слово,
но с замененными буквами (''ы'' заменяем на ''и'').
С английскими буквами все получается, т.е. переводит, а с русскими не хочет.
Причем если на входе пишем русские буквы(сначала хочу получить на выходе англ. буквы),
то на выходе получается то-же самое(без изменений), а если на вход подать
англ. буквы(при этом, получить на выходе русские) получаются квадраты.


Буквы меняю при нажатии на кнопку, вот код:


void CHW2Dlg::OnBnClickedChange()
{
CString input;
int len;

GetDlgItemText(IDC_INPUT, input);
len = CString::StringLength(input);

//1-ый способ:
for(int i=0; i<len; i++)
{
if (input.GetAt(i) == ''ы'')
input.SetAt(i, ''и'');
}


//2-ой способ:
// input.Replace(''ы'', ''и'');

SetDlgItemText(IDC_OUTPUT, input);
}


Что я делаю не так? Помогите, очень надо.
Post #: 1
VC++. Замена русских букв - 2006-02-23 17:20:34   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
чой-то я запутался в твоих англо-русских входах и русско-английских выходах. Мне кажется замена `ы' на `и' – она не меняет класса char'а, то есть как он был русским так русским и остался, английских от этого не прибавится и не убавится.

Но как бы там ни было, я предполагаю что проблема с кодировками.
ты уверен, что IDC_INPUT работает с символами в кодировке cp1251 (я предполагаю что именно в этой кодировке твой сорец)? Мож оно вообще работает с utf16, со всеми вытекающими отсюда. Или CString, работает с неоднобайтовыми символами.
Post #: 2
Страниц:  [1]
Все форумы >> [Веб-программинг] >> VC++. Замена русских букв







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.