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

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

Восстановить пароль Регистрация
 
Pam
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 10
01.08.2013, 14:59     Множественные char условия в условных операторах #1
Такой вопрос. Как сделать условия типа:
C
1
2
3
const char *Type;
if (Type == "One" || "ONE" || "one"){}
else if (Type == "Two" || "TWO" || "two"){}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.08.2013, 14:59     Множественные char условия в условных операторах
Посмотрите здесь:

C++ Найдите ошибки в операторах ввода/вывода
Нужно ли писать 'this' в операторах C++
Выход на биты в поразрядных операторах C++
C++ синтаксис в операторах while и do while
C++ Путаница в операторах
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Бендерродригез
Сгибальщик
 Аватар для Бендерродригез
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++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
01.08.2013, 15:07     Множественные char условия в условных операторах #3
Pam, вы в курсе что сравниваете указатели, а не строки?
nonedark2008
623 / 501 / 92
Регистрация: 28.07.2012
Сообщений: 1,338
01.08.2013, 15:15     Множественные char условия в условных операторах #4
Pam, для сравнения используй strcmp(str1, str2) == 0
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 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
:)
Эксперт C++
4377 / 3220 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
01.08.2013, 16:14     Множественные char условия в условных операторах #6
gray_fox, есть же stricmp.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
01.08.2013, 16:21     Множественные char условия в условных операторах #7
Tulosba, он не входит в стандарт
Tulosba
:)
Эксперт C++
4377 / 3220 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
01.08.2013, 16:50     Множественные char условия в условных операторах #8
Jupiter, действительно. Но может быть входит в реализацию используемого ТС компилятора.
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 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++

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

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

Не по теме:

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

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

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