写一个函数,输入一个编号(包含英文字符和数字),返回对应的名称,如何用switch语句实现? Switch里是不是只能用int
char* func(int n)
{
switch (n)
{
case xxx:
return "yyy";
...
}
}
【以下回答由 GPT 生成】
使用switch语句在Qt中实现根据编号返回名称的功能是可行的。以下是一个示例代码:
QString getObjectName(QString code) {
QString name;
if (code == "A") {
name = "Object A";
} else if (code == "B") {
name = "Object B";
} else if (code == "C") {
name = "Object C";
} else {
name = "Unknown Object";
}
return name;
}
在这个示例中,我们将输入参数的类型从int修改为了QString,以适应英文字符和数字的编号。我们使用if-else语句来实现与switch语句相同的逻辑。根据输入的code
的值,将对应的名称赋给name
变量。如果code
不匹配任何条件,将使用默认值"Unknown Object"。
请注意,此示例代码是将字符串code
与每个可能的值进行逐一比较,这可能不是最优解。如果有大量不同的编号对应不同的名称,使用switch语句或者使用映射技术会更加高效。但需要注意,在C++中,switch语句只能用于整型变量或枚举类型,而不能直接用于字符串或其他类型的变量。因此,如果code
是其他类型的变量,您可能需要通过转换或映射技术将其转换为整型。
【相关推荐】