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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2013, 10:43   #1
Никнейм94
 
Регистрация: 18.05.2013
Сообщений: 3
По умолчанию нужно сравнить два массива указателей типа char

помогите пожалуйста поправить код программы, мне нужно что бы программа брала мои значения, сравнивала и если они одинаковые то выводила
[CPP]
char *nm1;
int ln=strlen(Edit6->Text.c_str());
nm1=new char[ln+1];
strcpy(nm1,Edit6->Text.c_str());
nm1[ln]='\0';

char *av1;
int la=strlen(Edit7->Text.c_str());
av1=new char[la+1];
strcpy(av1,Edit7->Text.c_str());
av1[la]='\0';


ls.find1(nm1,av1,Label1);
[/CPP]

и сама функция
[CPP]void list::find1(char *nm1, char *av1, TLabel *mem)
{
kniga *t;
t=first;
while (t)
{
if ((nm1==t->name)|| (av1==t->avtor))
mem->Caption=(AnsiString(t->name)+" "+AnsiString(t->avtor)+" находится на "+IntToStr(t->stel));
t=t->next;
}
}[/CPP]
Никнейм94 вне форума Ответить с цитированием
Старый 22.05.2013, 10:49   #2
FataLL
Форумчанин
 
Аватар для FataLL
 
Регистрация: 29.01.2013
Сообщений: 319
По умолчанию

Здесь ошибка
Код:
if ((nm1==t->name)|| (av1==t->avtor))
Здесь сравниваются не строки, а их адреса, поэтому равенство никогда не выполнится.
Код:
if( !strcmp( nm1, t->name )|| !strcmp( av1, t->avtor ) ) // правильно
FataLL вне форума Ответить с цитированием
Старый 22.05.2013, 10:53   #3
Никнейм94
 
Регистрация: 18.05.2013
Сообщений: 3
По умолчанию

Цитата:
Сообщение от FataLL Посмотреть сообщение
Здесь ошибка
Код:
if ((nm1==t->name)|| (av1==t->avtor))
Здесь сравниваются не строки, а их адреса, поэтому равенство никогда не выполнится.
Код:
if( !strcmp( nm1, t->name )|| !strcmp( av1, t->avtor ) ) // правильно
Спасибо большое
Никнейм94 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнить два ассоциативных массива и вывести одинаковые значения. livesport PHP 1 20.10.2012 15:10
Заполнение массива типа char. KuckaMAXHATKA Общие вопросы C/C++ 1 15.02.2011 18:07
Запись числа типа инт в ячейку двумерного массива типа char AxenicX Помощь студентам 1 25.09.2009 00:35