Line 23: "Oh My Word" is actually a const char * and is stored by the compiler in your code space (read only). A good compiler should have thrown at least a warning on this line that you're trying to change the const-ness of the string.
Line 3: You equate output to input which means you now have a writable pointer pointing to your read-only string.
Line 10: When you try to write to output, you're going to get a segmentation fault (access violation) because you're trying to write to read-only memory.
edit:
Line 26: When you fall out of the while loop, you don't terminate the modified string.
@ OP: You do understand that at Line 3 you are only copying the address held by 'input' into 'output' right? You are not actually copying the contents of the memory that it points to. What you probably want, assuming you can't just use std::string like any sane person would, is the "memcpy()" function from the 'cstring' header: http://www.cplusplus.com/reference/cstring/memcpy/?kw=memcpy