хочу ограничить ввод символов тип char в языке си
Мне нужно чтобы пользователь мог вводить только 1 букву и только строчные или прописные (не цифры, не знаки - только буквы), а в ином случае программа заканчивалась.
Как мне провести эту проверку?
В коде нужно проверить только переменную letter
int main() {
char letter = 0;
char char_sequence = 0;
int times_letter_repeat = 0;
printf("Enter letter to count:\n");
scanf("%c", &letter);
printf("Enter the char sequence:\n");
scanf("%c", &char_sequence);
while (char_sequence != '$')
{
if (char_sequence == letter || char_sequence == letter - 'a' + 'A'){
times_letter_repeat++;
}
scanf("%c", &char_sequence);
}
printf("The letter appeared %d times\n", times_letter_repeat);
return 0;
}
Ответы (3 шт):
Автор решения: Sergey
→ Ссылка
не цифры, не знаки - только буквы
man 3 isalpha
isalpha() - checks for an alphabetic character;
Автор решения: Генс
→ Ссылка
#include<stdio.h>
#include<ctype.h>
Int main(void)
{
//Принимает только алфавит.
//Считает количество только
// одной указанной буквы.
// для выхода введите любой небуквенный символ.
//Для обработки кириллицы добавить <wctype.h>
//соответственно этому изменить представление
// на wchar_t и имена функций по примеру iswalpha()
char let, charSeq;
int letCount=0;
printf("Enter letter to count:\n");
scanf("%c", &let);
printf("Enter the char sequence:\n");
while (scanf("%c",&charSeq)==1)
{
if(isdigit(charSeq)||ispunct(charSeq))
break;
if(isalpha(charSeq))
{
if (charSeq == let)
letCount++;
}
}
printf("The letter appeared %d times\n",letCount);
return 0;
}