用字符串切换案例

时间:2013-03-28 19:48:55

标签: c++

编译代码时出错。

错误输出:

main.cpp: 35:16: error: switch quantity not an integer

我不知道为什么。代码如下:

int Values(string letter) {
    switch( tolower(letter) ) {
        case 'a' : a.setTotal();
        break;

此致

4 个答案:

答案 0 :(得分:4)

string不是char,它是表示字符数组的对象。 您应该传递string

,而不是将char传递给该函数

tolower(int)存在于C ++中,它的目的是获取字符,而不是字符串。


这是解决此问题的另一种方法,您需要对代码进行少量更改:

由于我非常确定letter的长度为string 1,根据名称判断,您可以更改switch语句以访问{ {1}},这将是letter[0]中的第一个字符。您还必须将string传递给letter[0]

答案 1 :(得分:2)

letter是字符串,因此tolower(letter)生成一个字符串。但你的情况是性格('a')。另外,在C / C ++中不可能使用switch作为字符串。 请改为使用此行:

switch( tolower(letter.data[0]) )

答案 2 :(得分:0)

switch inscrutvion只接受枚举类型(枚举),字符(char)或整数(int,unsigned,long)

答案 3 :(得分:0)

看起来你想要使用一个角色。

更改函数的参数:

int Values(string letter)

到此:

int Values(char letter)

switch语句将起作用。