passing a char array

There are several problems with that function.

  char Vtext2[100]="";

If you are going to specify a length, why are you not specifying the same number of initializers?

  char *Vtexttoprint[200];

This is an array of pointers. It is unlikely that that is what you want.

Passing a String to this function is a waste of resources. Pass it a char array (or pointer to char) instead.

  for (int i=0; i<=Vtext.length();i++){

If there are 3 characters in the String, you are going to access characters 0, 1, 2, and 3. Hardly seems like a good idea to me.

You are trying to return an array of pointers from a function defined to return a single pointer. That pointer, or array of pointers if you change the return type appropriately go out of scope when the function ends, so the caller would get a load of garbage.

You need to pass to the function a pointer to the memory location where it is to put its results, after allocating that memory in the caller.