使用字符串引用C++中的变量 是否甚至可以使用字符串引用C++中的变量?注意,这是一个c项目的包装器

使用字符串引用C++中的变量 是否甚至可以使用字符串引用C++中的变量?注意,这是一个c项目的包装器,c++,C++,我收到一条传入消息,看起来像是在所有3个变量中填充了数据: struct { char[20] var_a; char[20] var_b; char[20] var_c; } data_type; 此外,我还有另一个传入消息,可以是var_a、var_b或var_c字符串 我是否可以根据收到的信息提取数据 比如说 char new[20] = str2var("var_a") str2var只是用来表示我要做的事情。消息和数据的大小已经定义,我只需要能够根据另一个函数选择要提取

我收到一条传入消息,看起来像是在所有3个变量中填充了数据:

struct {
  char[20] var_a;
  char[20] var_b;
  char[20] var_c;
} data_type;
此外,我还有另一个传入消息,可以是var_a、var_b或var_c字符串

我是否可以根据收到的信息提取数据

比如说

char new[20] = str2var("var_a")
str2var只是用来表示我要做的事情。消息和数据的大小已经定义,我只需要能够根据另一个函数选择要提取的数据


欢迎任何其他实现此目标的想法。

根据您所描述的内容,您应该能够为最后一个字符编制索引,并且只使用case语句

char[20] m2;  // second message

switch (m2[4]) {

  case 'a':
    // use var_a
    break;

  case 'b':
    // use var_b
    break;

  case 'c':
    // use var_c
    break;

  default:
    // error
    break;
}

str2var必须接受另一个对象,不是吗?无论您得到什么解决方案都可能涉及std::unordered_映射,这就是为什么您不使用if-else链和strcmp的原因吗?