I want to refactor:
const char* arr =
"The "
"quick "
"brown";
into something like:
const char* quick = "quick ";
const char* arr =
"The "
quick
"brown";
because the string "quick" is used is many other places. Ideally I need to be able to do this with just const primitive types, so no string. What is the best way to do this?
Compiling the comments in the form of an answer:
Use a macro.
#define QUICK "quick " char const* arr = "The " QUICK "brown";
Use
std:string
.std::string quick = "quick "; std::string arr = std::string("The ") + quick + "brown";
Working code:
#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();
}
Output:
The quick brown
The quick brown
来源:https://stackoverflow.com/questions/26807775/initialize-const-char-by-concatenating-another-char