String literals do not respond to addition in the way you're expecting. That will take the address of the string literal, interpret it as a char pointer, then add the value of the char you're getting from Alphabet[x], which will be in the 0x41-0x5A range. (Edit - Nevermind, it looks like you realized that.)
If you want to append to a std::string then you can use the append() method, though it doesn't support single char as input. You need to pass it a std::string or a C-style string, so we've more or less come full circle here.
You could do this:
#include <string>
#include <iostream>
int main() {
using namespace std;
string Alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
string str = "Option";
int x = 4;
char temp[2] = {Alphabet[x], 0}; //kludge together a C string from two char values
str.append(temp);
cout << str << endl;
system("pause");
return 0;
}