问题
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?
回答1:
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