I need to concatenate two const chars like these:
const char *one = "Hello "; const char *two = "World";
How might I go about doing that?
I am passed these
char*s from a third-party library with a C interface so I can't simply use
In your example one and two are char pointers, pointing to char constants. You cannot change the char constants pointed to by these pointers. So anything like:
strcat(one,two); // append string two to string one.
will not work. Instead you should have a separate variable(char array) to hold the result. Something like this:
char result; // array to hold the result. strcpy(result,one); // copy string one into the result. strcat(result,two); // append string two to the result.
The C way:
char buf; strcpy(buf, one); strcat(buf, two);
The C++ way:
std::string buf(one); buf.append(two);
The compile-time way:
#define one "hello " #define two "world" #define concat(first, second) first second const char* buf = concat(one, two);