1. Yes you need to move the array declaration out of the constructor. As it is now, the array is a local variable to the constructor and not accessible outside of the constructor. Read up on variable scope.
2. Use the string class ToUpper() method to make the string all uppercase.
You'll get in even more difficulty. You need to spend some time learning the difference between managed and unmanaged code in C++. I am not sure what you are trying to achieve here, but suffice it to say that what you are attempting is not straightforward. C++ was never designed to work in .NET and unless you have a compelling reason to mix the two languages you should not bother. Stick to either unmanaged C++ or C#, and make life easier for yourself.
Please help me with a step by step process how can I do it .
Sorry, I don't have one, you will have to figure it out from the documentation and articles on the subject. I still do not understand what you are trying to achieve here, calling managed code from unmanaged is not such a simple matter.
It isn't clear if there is a real business problem here but mixed mode programming can often be tricky.
So it is easier to just not do it.
1. Create a executable of the targeted functionality.
2. Provide an management API for that: sockets, files or std io.
3. Use the client application to manage a "process" to run the above executable.
4. The client application uses the management api to produce the desired functionality.
The advantage to this is that both pieces, with care, can be tested independently and debugged independently as well. And the target functionality cannot take done the client application should it fail in a catastrophic way.