Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Первая буква строки -> получить код символа

26K
10 мая 2007 года
DEMON_XXX
4 / / 10.05.2007
Помогите пожалуйста! Не получается в Microsoft Visual Studio 6.0 сделать следующее:
Нужно скопировать из 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 код символа
15K
10 мая 2007 года
Iceman
19 / / 20.04.2006
Цитата: DEMON_XXX

Пробовал так, не получается:



Не получается что? Ошибка при компиляции, выводится неверный код, ничего не выводится?

2.2K
10 мая 2007 года
REFOT
181 / / 08.04.2005
А если так попробовать?
 
Код:
UpdateData(TRUE);
if(m_f1_filename!=""){
   m_f1_numcol = (int)m_f1_filename[0];
   UpdateData(FALSE);
}
15K
10 мая 2007 года
Iceman
19 / / 20.04.2006
Кстати, скорее всего, вместо вот этого:
Цитата: DEMON_XXX

//копирую в chr первый символ temp
code = (int)chr; //хочу получить код этого символа
m_f1_numcol=(int)chr; //вывожу в другой EDIT код символа



по логике должно быть все-таки так:

code = (int)chr; //хочу получить код этого символа
m_f1_numcol=code; //вывожу в другой EDIT код символа

Возможно, что в последнем присваивании еще нужно будет сделать преобразование числа в строку символов...

255
10 мая 2007 года
Dart Bobr
1.4K / / 09.04.2004
не возможно,а так и есть.
полученое значение в переменной code у тебя бинарное. Переменной m_f1_numcol ты присваиваешь то же значение. короче используй функции _itoa_s или _itow_s для конвертации значения в строку. Как их использовать - читай в мсдн.
кстати, еще. у тебя будет проблбема с юникодом. лучше использовать при работе с контролами вместо типа char тип wchar_t.
15K
10 мая 2007 года
Iceman
19 / / 20.04.2006
DEMON_XXX, Вам уже дали полный ответ на Ваш вопрос в другой ветке http://forum.codenet.ru/showthread.php?t=38175
2.2K
10 мая 2007 года
REFOT
181 / / 08.04.2005
Я тоже видел ответы в той ветке, и я с ними не согласен, переменная m_f1_numcol скорей всего у него типа int, и привязана к контролу, поэтому переводить значение в текстовый формат, тут не нужно. Да и ошибка тут в следующем:
code = (int)chr; - В результате получаем не кодовое значение первого символа, а указатель на начало массива, ему нужно только подправить запись, на
 
Код:
code = (int)chr[0];
m_f1_numcol=(int)chr[0];

и всё должно работать.
26K
10 мая 2007 года
DEMON_XXX
4 / / 10.05.2007
REFOT и все ответившие, огромное спасибо Вам!!!:) :) :)
Работают оба кода:
 
Код:
UpdateData(TRUE);
if(m_f1_filename!=""){
   m_f1_numcol = (int)m_f1_filename[0];
   UpdateData(FALSE);
}


и этот

 
Код:
code = (int)chr[0];
m_f1_numcol=(int)chr[0];
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог