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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2016, 18:16   #1
Мой повелитель
Пользователь
 
Аватар для Мой повелитель
 
Регистрация: 04.01.2016
Сообщений: 93
По умолчанию Сравнение С-строк

Столкнулся с одной проблемой в программе,решил проверить.
Код:
#include <iostream>
using namespace std;
int main()
{
	char a[3] = { "AB" };
	char b[3] = { "AB" };
	if (a == b)
	{
		cout << "YES!" << endl;
	}
	else
	{
		cout << "NO!" << endl;
	}
	system("pause");
}
Пишет "NO!".Почему же если строковые массивы равны?Или нужно их посимвольно сравнивать?
Мой повелитель вне форума Ответить с цитированием
Старый 23.03.2016, 18:24   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Потому что так строки не сравнивают. Вы сравниваете указатели, а они различны.
p51x вне форума Ответить с цитированием
Старый 23.03.2016, 18:37   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Или нужно их посимвольно сравнивать?
С-строки да, см strcmp .
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.03.2016, 18:38   #4
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,501
По умолчанию

спасибо что переименовали тему.
Alar вне форума Ответить с цитированием
Старый 23.03.2016, 18:40   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от Alar Посмотреть сообщение
спасибо что переименовали тему.
стараюсь =D
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.03.2016, 19:35   #6
Мой повелитель
Пользователь
 
Аватар для Мой повелитель
 
Регистрация: 04.01.2016
Сообщений: 93
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
С-строки да, см strcmp .
Спасибо,функция очень помогла.
Мой повелитель вне форума Ответить с цитированием
Старый 23.03.2016, 19:39   #7
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А еще лучше std::string взять раз С++.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнение строк Evacuator Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 05.06.2013 22:25
сравнение строк и исключение повторов в пределах 4 строк Dariloff Microsoft Office Excel 2 20.01.2013 23:33
Сравнение строк в С++ Китти Общие вопросы C/C++ 2 12.10.2010 16:56
Макрос на сравнение и подсчет в первом столбце строк, и сумирование значений этих строк в другом столбце Shpr0T Microsoft Office Excel 8 30.08.2010 17:52
Сравнение строк Jasper92 Общие вопросы C/C++ 6 23.12.2009 12:49