Инициализируйте const char *, объединяя другой char *

Я хочу рефакторинг:

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

в нечто вроде:

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

потому что строка «быстрый» используется во многих других местах. В идеале мне нужно быть в состоянии сделать это только с простыми примитивными типами, поэтому без строки. Каков наилучший способ сделать это?

1

Решение

Составление комментариев в виде ответа:

  1. Используйте макрос.

    #define QUICK "quick "
    char const* arr = "The " QUICK "brown";
    
  2. использование 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
3

Другие решения


По вопросам рекламы [email protected]