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

Двойное сравнение char - C++

Восстановить пароль Регистрация
 
Nikitko_Cent
128 / 98 / 8
Регистрация: 27.10.2011
Сообщений: 629
Завершенные тесты: 2
27.07.2013, 23:06     Двойное сравнение char #1
Код:
C++
1
2
3
4
5
6
7
8
9
10
11
int main()
{
    std::string buf;
    std::cin >> buf;
 
    std::cout << (buf[0]==buf[1]=='/') << '\n';
 
    system("pause");
 
    return 0;
}
В консоль вводится строка "//", почему выводится 0? Даже при том что такие примеры кодов:
C++
1
2
3
4
5
6
7
8
9
10
11
int main()
{
    std::string buf;
    std::cin >> buf;
 
    std::cout << (buf[0]=='/') << '\n';
 
    system("pause");
 
    return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
int main()
{
    std::string buf;
    std::cin >> buf;
 
    std::cout << (buf[1]=='/') << '\n';
 
    system("pause");
 
    return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
int main()
{
    std::string buf;
    std::cin >> buf;
 
    std::cout << (buf[0]==buf[1]) << '\n';
 
    system("pause");
 
    return 0;
}
Пишут в консоль 1
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.07.2013, 23:06     Двойное сравнение char
Посмотрите здесь:

Сравнение char array C++
Оператор if. Сравнение strlen(char x) != 3 C++
C++ Сравнение массивов типа Char
Сравнение с 0 через указатель *char C++
C++ Сравнение 2-ух char массивов
Сравнение char с int C++
C++ Ошибка? Сравнение char с eof
Сравнение char* и const string C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
27.07.2013, 23:16     Двойное сравнение char #2
потому что вы сравниваете логический тип с символом '/'
C++
1
2
b[0] == b[1] //дает true или false
//а дальше результат сравнивается с символом '/'
Добавлено через 41 секунду
и надо делать проверку на размер
C++
1
std::cout << (buf.size() > 1 ? buf[0] == '/' && buf[1] == '/' : false) << '\n';
Nikitko_Cent
128 / 98 / 8
Регистрация: 27.10.2011
Сообщений: 629
Завершенные тесты: 2
27.07.2013, 23:21  [ТС]     Двойное сравнение char #3
Цитата Сообщение от Olivеr Посмотреть сообщение
потому что вы сравниваете логический тип с символом '/'
C++
1
2
b[0] == b[1] //дает true или false
//а дальше результат сравнивается с символом '/'
Аа вот я идиот. Спасибо

Цитата Сообщение от Olivеr Посмотреть сообщение
и надо делать проверку на размер
C++
1
std::cout << (buf.size() > 1 ? buf[0] == '/' && buf[1] == '/' : false) << '\n';
Это само собой, выше представленный код - всего лишь пример
Yandex
Объявления
27.07.2013, 23:21     Двойное сравнение char
Ответ Создать тему
Опции темы

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