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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.09.2012, 22:42   #1
Cheat
Пользователь
 
Регистрация: 16.08.2011
Сообщений: 27
По умолчанию Работа со строками С++. Ошибка.

Всем привет!
Есть такой код:
Код:
struct testo
{
	char a[50];
	char b[50];
};


int main()
{
	SetConsoleCP(1251);
	SetConsoleOutputCP(1251);

	testo Array[3];

	testo m1;

	strcpy(m1.a, "1234567");
	strcpy(m1.b, "90");

	testo m2;

	strcpy(m2.a, "7654321");
	strcpy(m2.b, "90");

	Array[1] = m1;
	Array[2] = m2;

	char kite[50];
	strcpy(kite, "1234567");

	if (Array[1].a == kite)
		cout << "AAA!" << endl;
В этом коде if не выполняется. В режиме отладки я вижу, как мы попадаем на проверку условия, но, почему-то, она оказывается ложной, и до cout'a не доходим. А почему так? И как это исправить?
Cheat вне форума Ответить с цитированием
Старый 09.09.2012, 23:01   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Понаблюдайте за значениями переменных (Watch), перед условием сделайте контрольный вывод на экран переменных, которые вы сравниваете в условии.
Вадим Мошев вне форума Ответить с цитированием
Старый 09.09.2012, 23:17   #3
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Сравнение строк - strcmp
netrino вне форума Ответить с цитированием
Старый 09.09.2012, 23:18   #4
Cheat
Пользователь
 
Регистрация: 16.08.2011
Сообщений: 27
По умолчанию

перед условием делаю вывод Array[1].a и kite. Они идентичны
Cheat вне форума Ответить с цитированием
Старый 09.09.2012, 23:20   #5
Cheat
Пользователь
 
Регистрация: 16.08.2011
Сообщений: 27
По умолчанию

netrino, спасибо! а как пользоваться? strcmp(Array[1].a, kite)?
Cheat вне форума Ответить с цитированием
Старый 09.09.2012, 23:23   #6
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Почитайте справку.
Возможно, это функция, которая возвращает true в случае совпадения строк и false в противном случае.
Вадим Мошев вне форума Ответить с цитированием
Старый 09.09.2012, 23:35   #7
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от Cheat Посмотреть сообщение
netrino, спасибо! а как пользоваться? strcmp(Array[1].a, kite)?
Если строки равны, то результат равен нулю.
netrino вне форума Ответить с цитированием
Старый 09.09.2012, 23:35   #8
Cheat
Пользователь
 
Регистрация: 16.08.2011
Сообщений: 27
По умолчанию

Спасибо, все работает!
Cheat вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при работе с строками в Си papos Помощь студентам 1 23.03.2011 03:50
В чем ошибка со строками?? Freezy Паскаль, Turbo Pascal, PascalABC.NET 8 16.01.2011 22:03
Работа с матрицами (норма матрицы, работа со строками) Neitrosha Помощь студентам 1 26.11.2010 20:19
Ошибка в работе со строками, язык С ПеПпИ Помощь студентам 1 18.11.2010 01:24
Помогите понять в чем ошибка (работа со строками) Edimus Общие вопросы C/C++ 1 22.11.2007 14:09