首页 > 解决方案 > 从函数返回字符串文字

问题描述

我需要一个函数来根据代码值和辅助值返回一个字符串,我认为示例代码显示了我打算做什么,可能有一种简单的方法可以做到这一点,但我被卡住了。会有很多代码编号,这是我能想到的用 C 语言做的最好方法,但我得到一个编译错误,因为显然我不能在一个案例中做一个声明。我将不胜感激任何帮助纠正这一点。

char *response(int code, int alt) {
    switch ((int)code)
    {
        case 1:
            char *key[] = {"msg1","msg1_alt"};
        case 2:
            char *key[] = {"msg2","msg2_alt"};
        default:
            return "unknown";
    }
    return key[alt];
}

[评论更新:]

在示例中,如果代码变量的值为 1 且 alt 的值为 0,我希望函数返回“msg1”y 代码 == 2 和 alt==0 函数应返回“msg2”并且如果代码 == 2 和 alt==1 函数应该返回“msg2_alt”等等。因此 alt 的值将始终为 0 或 1,如果无法识别代码,则返回字符串为“未知”-

标签: c

解决方案


尝试以下操作:

char *response(int code, int alt) {
    char *key[ ] = {"msg1", "msg1_alt", "msg2", "msg2_alt"};
    switch (code) {
        case 1: return key[alt];
        break;
        case 2: return key[alt+2];
        break;
        default: return "unknown";
    }
}

推荐阅读