我想重构:

const char* arr =
  "The "
  "quick "
  "brown";

变成类似:
const char* quick = "quick ";
const char* arr =
  "The "
  quick
  "brown";

因为在许多其他地方都使用了字符串“quick”。理想情况下,我只需要能够使用const基本类型来做到这一点,所以不需要字符串。做这个的最好方式是什么?

最佳答案

以答案的形式汇编评论:

  • 使用宏。
    #define QUICK "quick "
    
    char const* arr = "The " QUICK "brown";
    
  • 使用std:string
    std::string quick = "quick ";
    std::string arr = std::string("The ") + quick + "brown";
    

  • 工作代码:
    #include <iostream>
    #include <string>
    
    #define QUICK "quick "
    
    void test1()
    {
       char const* arr = "The " QUICK "brown";
       std::cout << arr << std::endl;
    }
    
    void test2()
    {
       std::string quick = "quick ";
       std::string arr = std::string("The ") + quick + "brown";
       std::cout << arr << std::endl;
    }
    
    int main()
    {
       test1();
       test2();
    }
    

    输出:

    The quick brown
    The quick brown
    

    关于c++ - 通过串联另一个char *来初始化const char *,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26807775/

    10-11 22:42
    查看更多