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

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

Войти
Регистрация
Восстановить пароль
 
Pam
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 10
#1

Множественные char условия в условных операторах - C++

01.08.2013, 14:59. Просмотров 441. Ответов 9
Метки нет (Все метки)

Такой вопрос. Как сделать условия типа:
C
1
2
3
const char *Type;
if (Type == "One" || "ONE" || "one"){}
else if (Type == "Two" || "TWO" || "two"){}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Бендерродригез
Сгибальщик
 Аватар для Бендерродригез
42 / 42 / 3
Регистрация: 18.05.2013
Сообщений: 220
Завершенные тесты: 1
01.08.2013, 15:05     Множественные char условия в условных операторах #2
C++
1
if (Type == "One" || Type == "ONE" || Type == "one"){}
Jupiter
Каратель
Эксперт C++
6547 / 3967 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
01.08.2013, 15:07     Множественные char условия в условных операторах #3
Pam, вы в курсе что сравниваете указатели, а не строки?
nonedark2008
813 / 571 / 110
Регистрация: 28.07.2012
Сообщений: 1,519
01.08.2013, 15:15     Множественные char условия в условных операторах #4
Pam, для сравнения используй strcmp(str1, str2) == 0
gray_fox
What a waste!
 Аватар для gray_fox
1250 / 1133 / 54
Регистрация: 21.04.2012
Сообщений: 2,357
Завершенные тесты: 3
01.08.2013, 15:16     Множественные char условия в условных операторах #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <cctype>
#include <cassert>
 
// ...
 
bool iequals(char const* lhs, char const* rhs) {
   assert(lhs);
   assert(rhs);
 
   for ( ; lhs && rhs; ++lhs, ++rhs) {
      if (::tolower(*lhs) != ::tolower(*rhs)) {
         return false;
      }
   }
 
   return !(lhs || rhs);
}
 
// ...
 
if (iequals(Type, "one")) { /* ... */ }
Tulosba
:)
Эксперт С++
4384 / 3227 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
01.08.2013, 16:14     Множественные char условия в условных операторах #6
gray_fox, есть же stricmp.
Jupiter
Каратель
Эксперт C++
6547 / 3967 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
01.08.2013, 16:21     Множественные char условия в условных операторах #7
Tulosba, он не входит в стандарт
Tulosba
:)
Эксперт С++
4384 / 3227 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
01.08.2013, 16:50     Множественные char условия в условных операторах #8
Jupiter, действительно. Но может быть входит в реализацию используемого ТС компилятора.
gray_fox
What a waste!
 Аватар для gray_fox
1250 / 1133 / 54
Регистрация: 21.04.2012
Сообщений: 2,357
Завершенные тесты: 3
01.08.2013, 21:00     Множественные char условия в условных операторах #9

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение
gray_fox, есть же stricmp.
Я его тоже в начале указал, потом вспомнил про strcasecmp, поглядел, и...)



Добавлено через 1 час 5 минут
lol я и код то кривой написал) поправил:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <cctype>
#include <cassert>
 
// ...
 
bool iequals(char const* lhs, char const* rhs) {
   assert(lhs);
   assert(rhs);
 
   for ( ; *lhs && *rhs; ++lhs, ++rhs) {
      if (::tolower(*lhs) != ::tolower(*rhs)) {
         return false;
      }
   }
 
   return !(*lhs || *rhs);
}
 
// ...
 
if (iequals(Type, "one")) { /* ... */ }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.08.2013, 21:19     Множественные char условия в условных операторах
Еще ссылки по теме:

C++ Какие ограничения накладываются на объявления в операторах
Есть ли ошибка в операторах C++
Подскажите в условных операторах C++
C++ Организация условных переходов
ошибка в условных операторах C++

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

Или воспользуйтесь поиском по форуму:
OhMyGodSoLong
01.08.2013, 21:19     Множественные char условия в условных операторах
  #10

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение
Jupiter, действительно. Но может быть входит в реализацию используемого ТС компилятора.
Цитата Сообщение от Jupiter Посмотреть сообщение
Tulosba, он не входит в стандарт
А теперь если строки в разных кодировках, или на языке со спеицифичными правилами капитализации (банальный пример: немецкий)? Это так, к вопросу, почему не стоит лепить регистронезависимое сравнение куда ни попадя.

Yandex
Объявления
01.08.2013, 21:19     Множественные char условия в условных операторах
Ответ Создать тему
Опции темы

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