Char Headaches

This is a discussion on Char Headaches within the C Programming forums, part of the General Programming Boards category; Hi folks,
I am trying to set up a list of menu choices for a small device. What I want ...

Char Headaches

Hi folks,
I am trying to set up a list of menu choices for a small device. What I want to do is list the choices in a const array, and show them up on screen one by one as the user cycles through the menu. Unfortunately, the device's code page is UTF16, so I need to preface each choice with an L and store it in a wchar_t variable.
Here's what I have so far.
In the global variables section, I set up the constant wchar_t array of choices.

(The device white-screens at this point, indicating a memory read or write error).
However, the below code works fine.

Code:

memcpy (TextToShow, L"Increase Brightness", 59);
ShowMenuText;

I also tried using strcpy and it didn't crash, but it also only copied the first character (showed I instead of Increase Brightness).
I realize that TextToShow is a char, but the compiler won't let me store L"Hello" in a char. But perhaps wchar_t isn't the correct variable type for menuChoices, either.
Have you any idea what I'm doing wrong? If you can write out an example of the correct procedure, I'd be so thankful!
Thank you so much for reading! I'm completely baffled. Any help at all would be greatly appreciated!

>> UTF16, so I need to preface each choice with an L and store it in a wchar_t variable
The size and encoding of a wchar_t is implementation defined. On Windows OS's, it's UTF16-LE. On many other OS's it's UTF32 with host-endianess.

>> extern char TextToShow[]
How big is this buffer? 128 bytes?

>> ccLen = wcslen (menuChoices[uCurrentChoiceIndex]);
This give you the number of wchar_t's, not the number of bytes.

Thank you both so much for your replies! I will try wcscpy. In the meantime, can you tell me how to get the number of bytes in a wchar? Obviously, wcslen is not the answer. Thanks guys, you are awesome!