【问题标题】:Storing an Array of Strings(const char* stringlist[3])存储字符串数组(const char* stringlist[3])
【发布时间】:2012-03-31 15:06:50
【问题描述】:

我有一个字符串数组,我想将其复制到结构成员中以在程序中使用...

这是我作为字符串数组声明的内容:

const char *stringArray[3] = {"my", "string", "array"};

如何将数据复制到结构中?

【问题讨论】:

  • 修改语言标签,如果不是C
  • 你对你想要做什么非常模糊。您是否想要在结构中指向这些字符串的指针,以便您可以访问这些字符串但不能修改它们?您想要结构中的副本以便您可以修改它们吗?您是否需要分配额外的内存以便结构可以容纳更大的字符串?
  • 是的,我想指向字符串...我不需要修改它们/

标签: c++ string struct char


【解决方案1】:
struct MyStruct {
  std::vector<std::string> strings;
};

MyStruct my_struct;
const char *stringArray[3] = {"my","string","array"};
for (int i=0; i!=3; ++i) {
  my_struct.strings.push_back(stringArray[i]);
}

【讨论】:

    【解决方案2】:
    struct foo {
       std::string fooStr;  // const std::string fooStr;
    };
    
    const char *stringArray[3] = {"my", "string", "array"};
    
    foo obj;
    obj.fooStr = stringArray[0];
    

    如果您不想修改成员变量 - 然后const 限定成员变量并执行 -

    foo obj = { stringArray[0] };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-26
      • 2018-07-04
      相关资源
      最近更新 更多