Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Tsin
715 / 460 / 132
Регистрация: 30.12.2012
Сообщений: 1,251
Записей в блоге: 2
Завершенные тесты: 3
#1

Использование функции "strcmp" - C++

18.04.2013, 22:05. Просмотров 397. Ответов 2
Метки нет (Все метки)

Доброго времени суток, форумчане.
Отзовитесь, кто сведущ :

Есть всем известная функция strcmp(const char* str1, const char* str2)

Функция, прошу заметить, возвращает int-значения "-1", "0" или "1".

Почему же я могу использовать её в качестве bool?
Например так
C++
1
2
3
4
if(strcmp(a, b))
{
    doSmth();
}
Интуитивно понятно вроде бы, что когда возвращается "0", то внутрь цикла мы не попадём.
Но вот когда "1" или "-1", то дело наоборот.

Каков механизм действия всего этого? Почему значение "-1" выходит как true ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2013, 22:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Использование функции "strcmp" (C++):

error C2664: strcmp: невозможно преобразовать параметр 1 из "char (*)[20]" в "const char *" - C++
for(int i = 0; i< 5; i++) { wr_struc (list); if (strcmp(&list.Sostav,osn_sostav)==0 && strcmp(&list.MestoVkomande,attack)==0...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно". Я так...

Функция strcmp "was not declared in this scope" - C++
Написала программу, но выдает ошибку. Строка помечена комментарием. Помогите пожалуйста, не могу понять в чем ошиблась. Библиотеку...

Не хочет определять команду "strcmp" - C++
Добрый день, по условию создал код, но даже с подключаемыми библиотеками не хочет распозновать команду "strcmp". В чем проблема? ...

Вопрос "хорошего тона", "стиля" в программировании - правильное использование #include - C++
Привет. Вступление. Имею небольшой опыт в программировании. Сейчас мне дали разобрать один проект, как пример работы HGE и Box2D. ...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование) - C++
Разработать программу с использованием наследования классов, реализующую классы: − воин; − пехотинец(винтовка); − матрос(кортик). ...

2
Fedorys
489 / 200 / 9
Регистрация: 19.03.2013
Сообщений: 450
18.04.2013, 22:14 #2
Так компилятор воспринимает любое значение отличное от нуля как true. А переменные булевского типа могут иметь только два значения true и false.
1
Croessmah
Эксперт CЭксперт С++
13510 / 7668 / 866
Регистрация: 27.09.2012
Сообщений: 18,866
Записей в блоге: 3
Завершенные тесты: 1
18.04.2013, 22:15 #3
Цитата Сообщение от Tsin Посмотреть сообщение
Почему значение "-1" выходит как true
потому что
false - это ноль, а true - это что угодно кроме нуля
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2013, 22:15
Привет! Вот еще темы с ответами:

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления" - C++
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс "вентилятор" содержащий в себе классы:...

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания" - C++
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько лет книге и количество дней прошедших...

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс" - C++
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об издании, а также определить является ли данное...

Определить тип данных "Запись", имеющий поля "Фамилия", "Пол", "Зарплата" - C++
определить тип данных запись имеющий поля фамилия пол зарплата. определить массив из 10 записей. в программе ввести в массив данные и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru