c switch字符串比较
时间: 2023-11-08 08:05:07 浏览: 148
C语言中,使用switch语句比较字符串可以通过strcmp函数实现,具体实现代码如下:
```
#include <stdio.h>
#include <string.h>
int main()
{
char str[20];
printf("请输入一个字符串:");
scanf("%s", str);
switch (strcmp(str, "hello"))
{
case 0:
printf("您输入的是 hello\n");
break;
default:
printf("您输入的不是 hello\n");
break;
}
return 0;
}
```
该程序通过scanf函数获取用户输入的字符串,然后使用strcmp函数将用户输入的字符串与字符串"hello"进行比较,得到比较结果后再使用switch语句判断比较结果,输出相应的提示信息。
相关问题
c语言switch字符串
在C语言中,switch语句不能直接匹配字符串,因为表达式必须是常量表达式,且必须是整型或者枚举类型。但是可以通过将字符串转换为整型或者枚举类型来实现switch语句匹配字符串的功能。例如,可以使用枚举类型来表示所有可能的字符串,然后使用switch语句匹配枚举类型。另外,也可以使用if-else语句来实现字符串的匹配功能。
示例代码:
```
#include <stdio.h>
#include <string.h>
enum COMMAND { OPEN, CLOSE, QUERY };
int main() {
char str[10];
enum COMMAND cmd;
printf("请输入命令:");
scanf("%s", str);
if (strcmp(str, "open") == 0) {
cmd = OPEN;
} else if (strcmp(str, "close") == 0) {
cmd = CLOSE;
} else if (strcmp(str, "query") == 0) {
cmd = QUERY;
} else {
printf("无效命令\n");
return 0;
}
switch (cmd) {
case OPEN:
printf("执行打开操作\n");
break;
case CLOSE:
printf("执行关闭操作\n");
break;
case QUERY:
printf("执行查询操作\n");
break;
default:
break;
}
return 0;
}
```
C语言switch 判断字符串
在C语言中,直接使用`switch`语句判断字符串通常是不可能的,因为`switch`语句是针对整型、枚举类型等数值类型的,而不是字符串。然而,有一些间接的方式来模拟字符串比较。
一种常见的做法是将字符串转换为整数,比如ASCII值,然后基于这个整数做比较。例如,可以使用`strcmp()`函数先比较字符串,然后根据结果决定执行哪种操作:
```c
#include <stdio.h>
#include <string.h>
int compare_strings(const char* str1, const char* str2) {
int result = strcmp(str1, str2);
switch (result) {
case 0: // 如果str1和str2相等
printf("Strings are equal.\n");
break;
case -1: // 如果str1小于str2
printf("str1 is less than str2.\n");
break;
case 1: // 如果str1大于str2
printf("str1 is greater than str2.\n");
break;
default: // 非法情况
printf("Invalid comparison.\n");
break;
}
return 0;
}
int main() {
char str1[] = "apple";
char str2[] = "banana";
compare_strings(str1, str2);
return 0;
}
```
在这个例子中,我们并没有直接用`switch`切换字符串,而是通过比较结果进行不同的操作。
阅读全文