Заданный символ является цифрой

Заданный символ является цифрой

Определить, является ли введенное слово идентификатором, т.е. начинается ли оно с английской буквы в любом регистре или знака подчеркивания и не содержит других символов, кроме букв английского алфавита (в любом регистре), цифр и знака подчеркивания.

При решении задачи следует проверить:

  1. Принадлежит ли первый символ слова множеству английских букв, или является символом подчеркивания?
  2. Принадлежат ли все остальные символы слова множеству английских букв или множеству символов цифр или являются символами подчеркивания?

Если хотя бы один символ не принадлежит указанным множествам, то делается вывод, что слово идентификатором не является. При этом дальнейшую проверку символов можно опустить.

Разные языки программирования включают различные возможности. Поэтому в программах ниже используются немного отличающиеся способы решения данной задачи.

В Паскале есть тип данных "множество" (set), которое легко задается. В данном случае множество ch содержит буквы в обоих регистрах и знак подчеркивания, а множество n — символы цифр.

Сначала проверяется первый символ на принадлежность множеству ch. Если он ему не принадлежит, то программа завершается на этом этапе.

Если первый символ прошел проверку, то проверяются все остальные символы, начиная со второго и до конца. Если очередной символ не принадлежит ни одному из двух множеств, то программа завершается.

Если все символы прошли проверку, то, значит, введенное слово — идентификатор.

#include
#include
main ( ) <
char s [ 100 ] ;
short i , f ;
scanf ( "%s" , s ) ;
f = 1 ;

Наш профессор попросил нас создать программу, чтобы определить, является ли введенный символ символом, цифрой или буквой. Есть ли способ превратить оператор if-else в оператор переключателя PURE. Мне было интересно, как.

Решение

Может быть так? Вы можете добавить отражение времени компиляции в качестве упражнения =)

Читайте также:  Мой локальный айпи адрес

UPD: добавить другие решения из комментариев

Другие решения

операторы switch используются для констант, а не для условий.
Так что, если вы действительно хотите использовать только коммутатор, то вы должны охватить все возможные варианты следующим образом:

Без break внутри кейса программа «провалится» по кейсам до первого, содержащего break , Это, однако, очень утомительно писать и не очень читабельно. Предпочтительным способом было бы использовать операторы if-else так:

отказ

Я полностью согласен с комментарием @ muXXmit2X, но просто для удовольствия я написал сценарий который генерирует проверку только на коммутатор (никогда не код, как это, это ужасно)

Иногда генераторы полезны в реальном мире, но будьте осторожны.

PS: Ваш профессор садист.

PPS: Вы должны познакомиться с общие стили кода и выберите тот, который вам нравится, очень трудно читать такой код, как ваш.

Вы можете избежать переключения случая и можете сделать это, как показано ниже

Напишите функцию boolean IsDigit(char c) (Java), function IsDigit(c:char):boolean (Pascal), bool IsDigit(unsigned char c) (C/C++), определяющую, является ли данный символ цифрой или нет.

Естественно, программа должна считывать данные, вызывать эту функцию и выдавать ответ.

Входные данные
Задан единственный символ c.

Выходные данные
Необходимо вывести строку yes, если символ является цифрой, и строку no в противном случае.

Примеры
входные данные
c
выходные данные
no
входные данные
2
выходные данные
yes

Ссылка на основную публикацию
Добавить поля в фотошопе
На этой странице 某些 Creative Cloud 应用程序、服务和功能在中国不可用。 Позиционирование с помощью направляющих и сетки Направляющие и сетка помогают точно расположить изображения...
Где находятся vst плагины
Если нет еще ни одной, программа предлагает при установке свою FL Studio - .Image-LineFL Studio 8 Или как вариант C:Program...
Где находятся сервера steam
Please complete the security check to access youhack.ru Why do I have to complete a CAPTCHA? Completing the CAPTCHA proves...
Добавить почтовый ящик exchange
Получаем список почтовых ящиков Exchange Server Получаем список почтовых ящиков Exchange Server Добрый день! Уважаемые читатели и гости лучшего IT...
Adblock detector