No, that's horrible. You can't even access a string by index, let alone append something to one. And if you find yourself using C string functions in C++, you almost certainly did something wrong.
The correct solution is a vector<string>.
Your original problem (one character per note) could be solved with a simple character array: char scale[] = "CDEFGAB";. The notes could be referenced as scale[0], scale[1], etc..
Your slightly more complicated case (2 characters per note) when you changed the problem mid-thread could be handled with: char scale[][3] = {"C#", "D#"};
Use of vectors and strings is not too much more complicated:
1 2 3 4
vector<string> scale;
scale.push_back( string("C#") );
scale.push_back( string("D#") );
cout << scale[1];// should print D# to screen
The advantage here is that you can add cases later. You can change the content of the character arrays but you can't change the array sizes.