Comparing user-inputted characters in C

前端 未结 4 1578
失恋的感觉
失恋的感觉 2020-12-30 04:47

The following code snippets are from a C program.

The user enters Y or N.

char *answer = \'\\0\';

scanf (\" %c\", answer);

if (*answer == (\'Y\' ||         


        
4条回答
  •  轮回少年
    2020-12-30 05:01

    Because comparison doesn't work that way. 'Y' || 'y' is a logical-or operator; it returns 1 (true) if either of its arguments is true. Since 'Y' and 'y' are both true, you're comparing *answer with 1.

    What you want is if(*answer == 'Y' || *answer == 'y') or perhaps:

    switch (*answer) {
      case 'Y':
      case 'y':
        /* Code for Y */
        break;
      default:
        /* Code for anything else */
    }
    

提交回复
热议问题