C++中如何对字符串进行switch判断?

2024-11-06 00:13:13
推荐回答(3个)
回答1:

C++的开关语句,形式为

switch(expr1)
{
    case no1:
    break;
    case no2:
    break;
    ...
    case noN:
    break;
    default:
    break;
}

其功能是对expr1的值做判断,并执行与其相等的case分支,并一直执行到break或switch语句结束。

这里,no1, no2... noN必须是整型常量,而expr1也必须是一个类型为整型的表达式。

所以,直接对string类型做switch判断是非法的。但是可以根据实际情况,将运算结果转换为整型,从而使用switch语句。

举例来说,如果已知string类型的对象s,长度为5,其内容为"testN"形式,其中N可能为任意字符。这时要对该对象判断,就可以采用switch语句了。

switch(s[4])
{
    case '0':
    break;
    case 'A':
    break;
    ...
    
}

回答2:

语法上不支持.但我们可以变通.
比如把string 做一下hash处理,变成一个int数.
然后对这个int数进行switch.
这样子写的时候会复杂点.但是运行时快.比逐个字串比较要好

回答3:

C++不支持在case中用string

这种情况一般用
if ()
{
}
else if()
{
}