![]() |
|
|
![]()
|
|
| Enjoy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 4.2.2006 Репутация: нет Всего: нет |
Здравствуйте!
Насколько я знаю выражение SWITCH CASE не работает с типом данных STRING. Какие существуют альтернативные варианты обработки строк кроме блока if? Пример:
Как можно сократить количество строк подобного кода, и улучшить понимания, используя мощь С++?* |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
Сделай checksum и работай с числами или сравнивай побайтно...
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| Dreamer_0x01 |
|
|||
![]() Терминатор ![]() ![]() Профиль Группа: Участник Сообщений: 780 Регистрация: 14.4.2005 Где: Санкт-Петербург Репутация: 9 Всего: 12 |
Если я не ошибаюсь, то в операторе switch все поля "case" должны быть константами.
Поэтому единственный выход, наверное - определить функцию, преобразующее строку к какому-либо числу(чтобы можно было это число сравнивать с константой) Тогда можно будет вызывать эту функцию, чтобы получить преобразование в виде какой-то переменной (допустим, типа LONG), а потом уже эту переменную в операторе switch подставить в поля case. Это конечно хорошо...Но вот сама функция, преобразующая стоку в число по какому-либо алгоритму - вещь достаточно трудно читаемая. А как я понял, требуется как раз хорошая "читаемость" кода. то есть это будет что-то вида:
На мой взгляд, твоя конструкция с if выглядит не так уж и плохо. Лучшее - враг хорошего ;) -------------------- Нет ничего невозможного. Есть цели, и есть время и силы на их достижение. |
|||
|
||||
| answerU |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 5.2.2006 Репутация: нет Всего: нет |
Objavit i inicializirovat massiv s elementami <string, string, int> t.e <StrProcess1, StrProcess2, returnValue> , zdelat iteraciu po masivu, a vnutri-
Это сообщение отредактировал(а) answerU - 5.2.2006, 19:35 |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
answerU, используйте транслит!
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |