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

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

Восстановить пароль Регистрация
 
Tsin
 Аватар для Tsin
419 / 395 / 108
Регистрация: 30.12.2012
Сообщений: 1,086
Записей в блоге: 2
Завершенные тесты: 3
18.04.2013, 22:05     Использование функции "strcmp" #1
Доброго времени суток, форумчане.
Отзовитесь, кто сведущ :

Есть всем известная функция 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 ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2013, 22:05     Использование функции "strcmp"
Посмотрите здесь:

Использование структур, "Результаты зимней сессии" C++
Вопрос "хорошего тона", "стиля" в программировании - правильное использование #include C++
C++ error C2886: std::cout: использование символа в "using"-объявлении члена не допускается
error C2664: strcmp: невозможно преобразовать параметр 1 из "char (*)[20]" в "const char *" C++
C++ Что значит "%d %d\n" в функции вывода в файл fprintf(f, "%d %d\n", i, j);
Объясните использование "double" в данном примере C++
Чем отличается вызов функции setlocale(0, "") от setlocale(LC_ALL,"")? C++
Не существует подходящей функции преобразования из "std::string" в "int" C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Fedorys
 Аватар для Fedorys
487 / 198 / 8
Регистрация: 19.03.2013
Сообщений: 444
18.04.2013, 22:14     Использование функции "strcmp" #2
Так компилятор воспринимает любое значение отличное от нуля как true. А переменные булевского типа могут иметь только два значения true и false.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11841 / 6820 / 771
Регистрация: 27.09.2012
Сообщений: 16,911
Записей в блоге: 2
Завершенные тесты: 1
18.04.2013, 22:15     Использование функции "strcmp" #3
Цитата Сообщение от Tsin Посмотреть сообщение
Почему значение "-1" выходит как true
потому что
false - это ноль, а true - это что угодно кроме нуля
Yandex
Объявления
18.04.2013, 22:15     Использование функции "strcmp"
Ответ Создать тему
Опции темы

Текущее время: 08:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru