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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2014, 20:54   #1
alekopoko
Форумчанин
 
Регистрация: 03.04.2013
Сообщений: 167
По умолчанию оператор ==

Код:
function(char*name,char**FIO)
{
	if((char*)FIO==name) 
	if((char**)&name[0]==&FIO[0])
}
проверял printfом name и FIO одинаковые значения. Но if всегда fallse
Почему оператор сравнения это не понимает?
он не может такие типы данных сравнивать?

Последний раз редактировалось alekopoko; 26.03.2014 в 20:59.
alekopoko вне форума Ответить с цитированием
Старый 26.03.2014, 21:26   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я не большой спец по разименовыванию в Си, но память подсказывает что == не умеет сравнивать строки. Так что используй лучше strcmp()
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.03.2014, 21:55   #3
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

А, если попробовать вот так?
Код:
if((*FIO==name)
В помощь:
Указатели в C++
Streletz вне форума Ответить с цитированием
Старый 26.03.2014, 22:41   #4
alekopoko
Форумчанин
 
Регистрация: 03.04.2013
Сообщений: 167
По умолчанию

Код:
if((*FIO==name)
так не годится
Код:
*FIO
а у меня тип данных char** , т.е. вот это - char*FIO[10];
FIO разыменовывается либо так &FIO[i] ,либо так (char*)FIO

мне нужно каждый элемент символьного массива указателей проверять на равенство с символьным указателем,равенство тру, вернул нужный индекс
насколько я понял провернуть эту операцию с помощью операторов if и == нельзя(ну если перезагрузить оператор ==,может можно)

я думал что оператор == может сравнивать это,а оказалось нет.
с strcmp все окей.

Код:
function(char*name,char**FIO)
{
	int i=0;
	for( ;strcmp((char*)FIO,name)!=0;i++) ++FIO;
	return i;
}

Последний раз редактировалось alekopoko; 26.03.2014 в 22:49.
alekopoko вне форума Ответить с цитированием
Старый 26.03.2014, 22:47   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
ну если перезагрузить оператор ==,может можно)
По-моему для string он как раз перегружен.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.03.2014, 22:48   #6
alekopoko
Форумчанин
 
Регистрация: 03.04.2013
Сообщений: 167
По умолчанию

сравнить char** с char* оператором == нельзя,даже с явным приведением типа . Получается так

Последний раз редактировалось alekopoko; 26.03.2014 в 22:54.
alekopoko вне форума Ответить с цитированием
Старый 26.03.2014, 22:57   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну да )
Это же не паскаль.
А почему string не хочешь использовать? Или нужно классическое Си?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.03.2014, 23:07   #8
alekopoko
Форумчанин
 
Регистрация: 03.04.2013
Сообщений: 167
По умолчанию

мне кажется когда я пишу на классическом Си, я лучше понимаю структуры данных(списки,хэш-таблицы,деревья) чем если бы я писал это все на Си++
Насколько я понял в Си++ много делается без моего ведома,само делается.А на Си я вручную каждую деталь прописываю сам и код более развернутый и большой, чем на Си++.
Может я ошибаюсь.

Последний раз редактировалось alekopoko; 26.03.2014 в 23:09.
alekopoko вне форума Ответить с цитированием
Старый 26.03.2014, 23:11   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
много делается без моего ведома
Это разве плохо? Ты едешь на авто, ты же не думаешь как там поживает пружина клапана второго цилиндра? Ты просто едешь, обьезжая кочкоямы не задумываясь о том как твой железный бизон поглощает горючку
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.03.2014, 23:21   #10
alekopoko
Форумчанин
 
Регистрация: 03.04.2013
Сообщений: 167
По умолчанию

Цитата:
Это разве плохо?
плохо.Потому что,то что делается без моего ведома,вдруг это даст сбой,то как я его исправлю(изменю код,по свои нужды) ?если не знаю как там внутри что происходит, то точно не исправлю.
если машина сломается,то тыж ее не починешь? так и тут.
Ну может я чушь несу) машина и программирование слишком разные примеры)
alekopoko вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Условный оператор,оператор цикла и массив Klark73 Microsoft Office Excel 1 19.12.2011 17:09
Оператор выбора или условный оператор[Перенесено из JavaSE] merhaba1992 Помощь студентам 1 20.01.2011 17:06
Условный оператор. Оператор выбора. Pascal Сержuk Помощь студентам 4 17.11.2010 12:50
Вычислить используя, оператор цикла for и оператор безусловного пе Knubbe Помощь студентам 1 18.12.2009 10:24