检测C

时间:2017-09-29 19:06:07

标签: c

#include <stdio.h>
#include <stdlib.h>

int main() {
    char c;
    printf("Hello World ! Right something you want to know about\n");`

    scanf_s("%c", &c);

    if (c = 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O','P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z') 
    {
        printf("\nThe input is an upper case letter\n");
    }
    else if  (c = 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z') 
    {
        printf("\nThe input is lower case letter\n");
    }
    return 0;
}

我是C编程的新手,我正在尝试制作一个检测大写和小写字母的程序,但这不起作用,显然我无法弄清楚原因!

2 个答案:

答案 0 :(得分:8)

几个问题:

  1. 您使用=代替==。这将分配到变量,而不是测试它。

  2. 正如评论者指出的那样,你不能使用这样的逗号;您需要使用OR运算符(||)。

  3. 考虑到A-Za-z都在连续的范围内,这比它需要的更复杂。你可以if (c >= 'A' && c <= 'Z')

  4. 整个程序是不必要的,因为islower()中已有函数isupper()ctype.h为您执行此操作。

答案 1 :(得分:2)

这是一种更容易做到你想要的方式:

#include<stdio.h>

int main() {
   char c;

   printf("Enter The Character : ");
   scanf(" %c", &c);

   if (ch >= 'A' && ch <= 'Z')
   {
      printf("Character is Upper Case Letters");
   }
   else
   {
      printf("Character is Not Upper Case Letters");
   }
   return (0);
}

你的代码中的错误就是Charles Srstka提到的错误,你的代码太乱了