Я пытаюсь написать программу, которая позволит пользователю ввести столько символов , сколько захочет. Затем программа проверяет, имеют ли символы верхний регистр или строчный регистр. Если программа обнаруживает строчную букву во входном потоке, программа распечатает букву в виде символа и ее шестнадцатеричном номере. Когда он сталкивается с EOF, и все введенные буквы являются верхним регистром, программа будет печатать «Все введенные буквы являются верхним регистром», и программа также будет считать все введенные буквы, этот номер также будет отображаться. Я действительно новичок в программировании, пожалуйста, проявляйте терпение со мной.C программа. Верхняя или нижняя ... бит маскирования и while loop
Это мой код
#include <stdio.h>
int main(void)
{
char myChar;
do
{
myChar = getchar();
printf("%02x ",myChar); // this is here to help debugging
if(myChar == EOF) // if get user enters an EOF or the EOF is reached
{
printf("All are caps\n");
// print number of letters entered
// break out of loop and end program
}
}
while(((myChar&0x20) == 0));
{
printf("\n");
printf("entered LOWER CASE = %c \n",myChar);
printf("The hex value is = %x \n",myChar); // hex value of lower case letter
}
system("pause");
return 0;
}
Какой бит вы возникли проблемы с? Каков ваш вклад, какой результат вы получаете, и какой результат вы ожидали? –
'myChar' должен быть' int', а не 'char', иначе вы не сможете надежно обнаружить' EOF'. –
Некоторые наблюдения: 'getchar()' return 'int',' EOF' is * not * a 'char', и вы должны использовать' islower() 'для проверки нижнего регистра. – unwind