I need to initialize array of English and Geramn alphabets. The German alphabets has the unicode as follows: 00C01C(U_double_dot), 00C004 (A_double_dot), and 00C016(O_double_dot).
That won't work, as that will store them in UTF-16 format when the actual string is (likely) UTF-8
The easiest way would be to just have your text editor save the file as UTF-8 and type the characters into the source the same you you type normal English characters.
The problem is, other libraries don't necessarily know how to output UTF-8. You can store the data in the string any way you like, but if the library doesn't know how to use it then it won't work.
The real question here is what do you want to do with these strings once you have them?
Idiot me. Of course, strings are a typedef of a basic_string<char>. Plus it doesn't help that indeed Unicode characters sometimes are tricky to get to print out properly (depending on the library and the platform, iirc).
wctomb just converts a "wide" character to a "multibyte" character. Strangely enough, both of those terms are somewhat meaningless as they aren't necessarily related to Unicode.
What's more, outputting wide characters to wcout or (multibyte characters to cout) doesn't even necessarily work. It depends on system locale settings and other factors.
There's not even any guarantee that the font the terminal you're using has the characters you want to output, so even if the output is correct, you might get one of those 'invalid character boxes'.
There's really no simple answer to this question, especially since we still don't know how coder1998 is trying to output. In order for us to give him a complete solution, he'll need to be more specific about what he wants.
I am using Visual Studio 2008, the output for A, B, C is correct, however it does not produce German character Ä, Ö, and Ü as many of you pointed out, any suggestion?