Другие ребята уже дали несколько отличных практических советов.Позвольте мне добавить две вещи:
Прежде всего, K & R не хочет, чтобы вы обнаружили все недостатки их кода.Цель этого упражнения заключается в том, чтобы вы знали о том, что часто существует фальшивый вклад и что однажды можно ожидать, что каким-то образом справится с ним в аналогичной ситуации.Как вы это делаете, полностью зависит от вас.Просто помните, что некоторые, казалось бы, легкие проблемы иногда требуют тщательного обдумывания.
Смысл в том случае: когда мой глупый iPhone получает сообщение «foo is bad.it запах», он распознает «bad.it» какURL.Кажется забавным, но пока вы не можете исправить эту ошибку, не требуя изменения самого содержимого сообщения.
И второе, ваш заголовок вводит в заблуждение.Невозможно найти все ошибки в программе, просто протестировав .Или, как однажды сказал Эдсгер Дейкстра:
Тестирование показывает наличие , а не отсутствие ошибок.
Thisявляется фундаментальным результатом теоретической информатики и может быть доказано.См. теорему Райса , если вам интересно.
РЕДАКТИРОВАТЬ: при написании этой публикации я обнаружил ошибку, которая как-то связана с нашей темой: парсер StackOverflow не распознает "http://en.wikipedia.org/wiki/Rice's_theorem" как URL.: -)
EDIT2: подал отчет об ошибке в meta здесь .