Handling C-like strings in C++11
This is one case where using the preprocessor may be worthwhile (despite the lack of namespace awareness).  In the code below, ss[] not only gets an appropriate size without any effort on your part, it's actually populated with the concatenated text at compile time.

#define S1 "string1"
#define S2 "string2"

// optionally, create real character arrays so you can modify them etc.
char s1[] = S1;
char s2[] = S2;

// now the magic - automatic concatenation of adjacent string literals
char ss[] = S1 S2;