Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2013, 04:31   #1
qwertyk
Пользователь
 
Регистрация: 15.07.2009
Сообщений: 52
По умолчанию Сравнение AnsiString из ComboBox и char*

Код:
char* ch="123";
ComboBoxDeviceList->Items[0].Text=ch;
if (ComboBoxDeviceList->Items[0].Text.c_str()==ch) MessageBox(0,"VERY GOOD!","Error",MB_OK|MB_ICONERROR);
else MessageBox(0,"VERY BAD!","Error",MB_OK|MB_ICONERROR);
Почему всегда выводится сообщение VERY BAD!, т.е. массивы не совпадают? Как можно сделать чтобы строки равнялись и почему так происходит?
qwertyk вне форума Ответить с цитированием
Старый 22.01.2013, 08:58   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

c_str() возвращает const char*
Вы просто сравниваете два указателя (а не то, на что они указывают), соотвественно они и не равны.

Думаю надо оставить все как есть, только убрать вызов c_str()
waleri вне форума Ответить с цитированием
Старый 22.01.2013, 09:45   #3
qwertyk
Пользователь
 
Регистрация: 15.07.2009
Сообщений: 52
По умолчанию

Цитата:
Думаю надо оставить все как есть, только убрать вызов c_str()
Не работает. Все равно выводить сообщение VERY BAD!. У них даже длина разная у ComboBoxDeviceList->Items[0].Text.Length=5, а у char* ch=3. Как быть?
qwertyk вне форума Ответить с цитированием
Старый 29.01.2013, 13:52   #4
FataLL
Форумчанин
 
Аватар для FataLL
 
Регистрация: 29.01.2013
Сообщений: 319
По умолчанию

Что и с чем надо сравнивать? Доступ к первому элементу ComboBox выглядит так:
Код:
ComboBoxDeviceList->Items->Strings[0]
Свойство Text возвращает строку, содержащую все строки ComboBox, разделённые последовательностью "\r\n", т.е., в данном случае, сравнение идёт строк "123\r\n" и "123"...
FataLL вне форума Ответить с цитированием
Старый 31.01.2013, 17:50   #5
qwertyk
Пользователь
 
Регистрация: 15.07.2009
Сообщений: 52
По умолчанию

Спасибо, за разъснения.
qwertyk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Cannot convert 'AnsiString' to 'char *' MaxYalunin C++ Builder 2 15.10.2012 09:34
из AnsiString в char* Psayker C++ Builder 4 21.06.2011 11:07
Как сконвертировать AnsiString в char * ? Zibi Общие вопросы C/C++ 11 12.07.2009 13:24
C++ Builder AnsiString преобразовать в Char ROD C++ Builder 3 07.04.2009 12:12
из AnsiString в Char[] juden Общие вопросы C/C++ 6 20.05.2008 22:49