C/C++ switch case string(字串)
C/C++ switch case string(字串)
資料來源: https://stackoverflow.com/questions/4014827/how-can-i-compare-strings-in-c-using-a-switch-statement
線上編譯器: https://www.tutorialspoint.com/online_c_compiler.php
GitHub: https://github.com/jash-git/C_switch_string
code:
#include <stdio.h> #include <stdlib.h> #include <string.h> #define BADKEY -1 #define A1 1 #define A2 2 #define B1 3 #define B2 4 #define NKEYS (sizeof(lookuptable)/sizeof(t_symstruct)) typedef struct { char *key; int val; } t_symstruct; t_symstruct lookuptable[] = { { "A1", A1 }, { "A2", A2 }, { "B1", B1 }, { "B2", B2 } }; int keyfromstring(char *key) { int i; for (i=0; i < NKEYS; i++) { t_symstruct sym = lookuptable[i]; if (strcmp(sym.key, key) == 0) return sym.val; } return BADKEY; } void Pause() { printf("Press Enter key to continue..."); fgetc(stdin); } int main() { printf("Hello, World!\n"); switch (keyfromstring("A1")) { case A1: printf("A1!\n"); break; case A2: break; case B1: break; case B2: break; case BADKEY: break; } Pause(); return 0; }
One thought on “C/C++ switch case string(字串)”
純C/C++ 字串 比對/比較 函數(函式): strcmp