在C語言中,switch
語句本身不能直接處理字符串。switch
語句主要用于處理整數類型的值。
然而,你可以使用字符串指針和strcmp
函數來實現類似于處理字符串的功能。以下是一個示例:
#include <stdio.h>
#include <string.h>
int main() {
char *str1 = "hello";
char *str2 = "world";
char input[100];
printf("Enter a string: ");
fgets(input, sizeof(input), stdin);
// 去掉換行符
input[strcspn(input, "\n")] = 0;
switch (strcmp(input, str1)) {
case 0:
printf("You entered: %s\n", str1);
break;
case 1:
printf("You entered: %s (but it's not equal to %s)\n", input, str1);
break;
default:
printf("You entered a different string: %s\n", input);
break;
}
return 0;
}
在這個示例中,我們使用strcmp
函數比較用戶輸入的字符串和預定義的字符串(如"hello"
)。strcmp
函數返回一個整數,如果兩個字符串相等,則返回0;如果第一個字符串在字典順序上位于第二個字符串之前,則返回一個負數;否則,返回一個正數。然后,我們使用switch
語句根據strcmp
函數的返回值執行不同的操作。
請注意,這種方法并不是直接使用switch
處理字符串,而是通過比較字符串的哈希值(實際上是由strcmp
函數完成的)來實現類似的功能。