UpdateData(TRUE);
if(m_f1_filename!=""){
m_f1_numcol = (int)m_f1_filename[0];
UpdateData(FALSE);
}
Первая буква строки -> получить код символа
Нужно скопировать из EDITa первую букву строки и перевести ее в код этой буквы.
Пробовал так, не получается:
char temp[50];
char chr[50];
int code; // Код тут
UpdateData(TRUE);
if (m_f1_filename!="")
{ strcpy(temp, m_f1_filename.GetBuffer(m_f1_filename.GetLength()) );
//копирую в temp содержимое EDITa
strncpy(chr,temp,1);
//копирую в chr первый символ temp
code = (int)chr; //хочу получить код этого символа
m_f1_numcol=(int)chr; //вывожу в другой EDIT код символа
Цитата: DEMON_XXX
Пробовал так, не получается:
Не получается что? Ошибка при компиляции, выводится неверный код, ничего не выводится?
Код:
Цитата: DEMON_XXX
//копирую в chr первый символ temp
code = (int)chr; //хочу получить код этого символа
m_f1_numcol=(int)chr; //вывожу в другой EDIT код символа
по логике должно быть все-таки так:
code = (int)chr; //хочу получить код этого символа
m_f1_numcol=code; //вывожу в другой EDIT код символа
Возможно, что в последнем присваивании еще нужно будет сделать преобразование числа в строку символов...
полученое значение в переменной code у тебя бинарное. Переменной m_f1_numcol ты присваиваешь то же значение. короче используй функции _itoa_s или _itow_s для конвертации значения в строку. Как их использовать - читай в мсдн.
кстати, еще. у тебя будет проблбема с юникодом. лучше использовать при работе с контролами вместо типа char тип wchar_t.
DEMON_XXX, Вам уже дали полный ответ на Ваш вопрос в другой ветке
code = (int)chr; - В результате получаем не кодовое значение первого символа, а указатель на начало массива, ему нужно только подправить запись, на
Код:
code = (int)chr[0];
m_f1_numcol=(int)chr[0];
m_f1_numcol=(int)chr[0];
и всё должно работать.
Работают оба кода:
Код:
UpdateData(TRUE);
if(m_f1_filename!=""){
m_f1_numcol = (int)m_f1_filename[0];
UpdateData(FALSE);
}
if(m_f1_filename!=""){
m_f1_numcol = (int)m_f1_filename[0];
UpdateData(FALSE);
}
и этот
Код:
code = (int)chr[0];
m_f1_numcol=(int)chr[0];
m_f1_numcol=(int)chr[0];