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.