#include char switch_cases_1_tab[256] = { ['a' ... 'z' ] = 'A' - 'a', ['A' ... 'Z' ] = 'a' - 'A', }; char switch_cases_1(char ch) { return ch + switch_cases_1_tab[(unsigned char)ch]; } char switch_cases_2(char ch) { switch (ch) { case 'A' ... 'Z': return ch + ('a' - 'A'); case 'a' ... 'z': return ch + ('A' - 'a'); default: return ch; } } int main() { char demo[] = "This Is A Simple Test.\n"; int i; printf("%s", demo); for (i=0; demo[i]; i++) demo[i] = switch_cases_1(demo[i]); printf("%s", demo); for (i=0; demo[i]; i++) demo[i] = switch_cases_2(demo[i]); printf("%s", demo); return 0; }