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

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

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

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

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

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...

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

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

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

Функция isspace и тип string: Не существует подходящей функции преобразования из "std::string" в "int" - C++
Добрый день! Я только начинаю изучать язык c++ по книге "Язык программирования С++. Базовый курс 5-е изд 2014(Стэнли Б. Липпман)". ...

Аргументы функции: что значит "большие" и "небольшие" аргументы? - C++
Здравствуйте! Всем доброго дня! Растолкуйте пожалуйста! Что значит большие и небольшие?

Как это работает (недокументированное использование оператора "запятая")? - C++
Нашёл один велосипед в сети, можете объяснить как это работает? Что это за недокументированное использование оператора "запятая"? ...

error C2886: std::cout: использование символа в "using"-объявлении члена не допускается - C++
подскажите плз что ето может бить...если не подключаю файл Nokia.h тогда всьо норм.. #include "stdafx.h" #include "iostream" #include...

Объясните использование "double" в данном примере - C++
#include <stdio.h> #include <math.h> int main(void) { int a,b,c; scanf("%d %d %d",&a,&b,&c); // x*x*x +...

Использование структур, "Результаты зимней сессии" - C++
Задача на С. Ведомость о результатах зимней сессии содержит информацию: фамилия и инициалы студента, номер группы, оценки из трех...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Fedorys
489 / 200 / 9
Регистрация: 19.03.2013
Сообщений: 450
18.04.2013, 22:14     Использование функции "strcmp" #2
Так компилятор воспринимает любое значение отличное от нуля как true. А переменные булевского типа могут иметь только два значения true и false.
Croessmah
Модератор
Эксперт CЭксперт С++
12979 / 7291 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
18.04.2013, 22:15     Использование функции "strcmp" #3
Цитата Сообщение от Tsin Посмотреть сообщение
Почему значение "-1" выходит как true
потому что
false - это ноль, а true - это что угодно кроме нуля
Yandex
Объявления
18.04.2013, 22:15     Использование функции "strcmp"
Ответ Создать тему
Опции темы

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