c++ switch 用不了string
时间: 2023-05-23 15:05:13 浏览: 514
A: 是的,C语言中的switch语句不能直接用于字符串类型,只能用于整数类型或枚举类型。如果你想在switch语句中使用字符串,则需要将字符串转换为整数或枚举类型,或者使用if-else语句来实现相同的功能。常见的字符串比较方式包括字符串函数strcmp()和strncmp()。
相关问题
c++switch不能作用于string
类型,你有什么解释吗?
A:因为C语言中,switch语句只能作用于整型或字符型变量。在C语言中,字符串类型实际上是字符数组,即由多个字符组成的一串字符。因此,不能直接使用字符串类型作为switch语句的判断条件。如果需要根据字符串进行判断,可以使用if语句和字符串库函数来实现。
c++ switch字符串
在 C++ 中,switch 语句只能用于整型、字符型和枚举类型的变量,不能直接用于字符串。但是可以通过将字符串转换为整型或枚举类型来实现类似的功能。例如,可以使用哈希函数将字符串映射为整型,然后在 switch 语句中使用该整型。
以下是一个示例代码:
```c++
#include <iostream>
#include <string>
using namespace std;
int hash_func(string str) {
int hash_val = 0;
for (char c : str) {
hash_val += c;
}
return hash_val;
}
int main() {
string str = "hello";
int hash_val = hash_func(str);
switch (hash_val) {
case hash_func("hello"):
cout << "Hello, world!" << endl;
break;
case hash_func("world"):
cout << "World, hello!" << endl;
break;
default:
cout << "Unknown string!" << endl;
break;
}
return 0;
}
```
阅读全文