Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Непонятная строчечка на си  (Прочитано 631 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн hardhast

  • Автор темы
  • Участник
  • *
  • Сообщений: 126
    • Просмотр профиля
Непонятная строчечка на си
« : 02 Января 2016, 15:39:12 »
Ищет заданный образец в массиве и выводит строку. Ключ -x наоборот выводит строки в которых отсутствует образец.
(Нажмите, чтобы показать/скрыть)

Не понимаю как работает строка
Код: (c) [Выделить]
if ((strstr(line, *argv) != NULL) != except) {Здесь как я понял происходит проверка на ключ -x. С чем сравнивается except? Что вообще здесь происходит? Как это работает? Не понимаю.
« Последнее редактирование: 02 Января 2016, 16:06:22 от hardhast »

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Не понятная строчечка на си
« Ответ #1 : 02 Января 2016, 15:56:06 »
strstr(line, *argv) != NULL // не равно. Если не равно, то 1, если равно 0.
cond != except //  не равно. Если не равно, то 1, если равно 0.
cond = strstr(line, *argv) != NULL
Понятно?
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн hardhast

  • Автор темы
  • Участник
  • *
  • Сообщений: 126
    • Просмотр профиля
Re: Не понятная строчечка на си
« Ответ #2 : 02 Января 2016, 16:05:48 »
alsoijw,
Кажется понял, благодарю.

shura1

  • Гость
Re: Непонятная строчечка на си
« Ответ #3 : 03 Января 2016, 20:50:29 »
Условие1 - совпадение образца со строкой во вводе.
Условие2 - наличие ключа -х

Если Условие1 != Условие2 - печатать строку.

Что означает - печатать только тогда, когда
- или найдено и не задан ключ -х
- или не найдено и задан ключ -х

А вообще-то да, код суровый). Но как его упростить, я вот не вижу. Можно "размазать", но я не верю, что станет понятнее...

 

Страница сгенерирована за 0.049 секунд. Запросов: 25.