1

From everywhere I looked, characters could be used in cases in switch statements since they break down into a constant expression. However, when I tried to run switch statements with characters, I get "expression must be an integral constant expression."

I tried making a switch statement using characters but it resulted in "expression must be an integral constant expression."

#include <stdio.h>

int main() {
    char letter;
    printf("Enter A, B, or C");
    scanf("%c", &letter);

    switch (letter) {
        case "A":  // expression must be an integral constant expression
            printf("A");
            break;
        case "B":  // expression must be an integral constant expression
            printf("B");
            break;
        case "C":  // expression must be an integral constant expression
            printf("C");
            break;
    }

    return 0;
}
  • 2
    `"A"` => `'A'` ... – Petr Skocik May 29 '23 at 21:40
  • 1
    `"A"` is a [string literal](https://en.cppreference.com/w/c/language/string_literal). `'A'` is a [character constant](https://en.cppreference.com/w/c/language/character_constant). – Oka May 29 '23 at 21:41

0 Answers0