Проверить что в строке нет цифры на первом месте - C (СИ)
Формулировка задачи:
Как лучше всего проверить что в строке "string" нет цифры на первом месте и в целом символа за пределами диапазонов [a-z][A-Z][0-9] при условии что ctype.h мне не доступна и я не хочу писать 3 массива для сравнения =)
Решение задачи: «Проверить что в строке нет цифры на первом месте»
textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
int nom(char c) //функция, возвращающая номер символа в ASCII
{
return(int(c));
}
char prop(char c) //возвращает прописную букву по строчной
{
return(c+'A'-'a');
}
void main()
{
char c;
clrscr();
printf("Vvedite latinskij stro4nuj simvol : ");
c=getch(); //сохраняет в С нажатый символ
if (nom(c)>96 && nom(c)<123) //проверка, что введенный символ - строчный
{
printf("simvol : %c\n",c);
printf("Poryadkovyj nomer = %d\n",nom(c));
printf("propisnoj simvol : %c\n",prop(c));
}
else printf("\nVveden ne stro4nuj latinskij simvol\n"); //ошибка если вне диапазона строчных символов в таблице ASCII
printf("Press any key to exit\n");
getch();
}
Объяснение кода листинга программы
- В начале кода подключаются необходимые библиотеки для работы с языком C.
- Далее определены две функции:
nomиprop. Функцияnomвозвращает номер символа в ASCII, а функцияpropпреобразует строчную букву в прописную. - В функции
mainобъявлена переменнаяc, которая будет использоваться для хранения введенного символа. - С помощью функции
clrscrочищается экран. - Пользователю предлагается ввести латинский символ с помощью функции
getch. - С помощью условного оператора
ifпроверяется, что введенный символ является строчным (от 'a' до 'z' или от 'A' до 'Z'). - Если символ является строчным, то выводятся его значение, прописная версия и номер в ASCII таблице с помощью функций
printfиnom. - Если символ не является строчным, то выводится сообщение об ошибке с помощью функции
printf. - В конце программы пользователю предлагается нажать любую клавишу для выхода из программы с помощью функции
getch. - Программа завершается.