Se me ocurre un array bidimensional del tipo char para almacenar letras pero tendría que ser un array bidimensional dinámico ya que el usuario tiene que ingresar el numero de filas y columnas, el texto si podría hacerse con un array estático, pero no lo de las filas y columnas
corre este codigo a ver si es mas o menos lo que buscas
- #include <iostream> 
-   
- using namespace std; 
-   
- void creator(); 
-   
- int main() 
- { 
-   
- creator(); 
-     return 0; 
- } 
-   
- void creator() 
-   
- { 
-     unsigned int filas,columnas; 
-     cout<<"Ingrese cantidad de filas= "; 
-     cin>>filas; 
-     cout<<"Ingrese cantidad de columnas= "; 
-     cin>>columnas; 
-   
-     char** ary = new char*[filas]; //crea el espacio en memoria del arrreglo bidimensional 
-     for(int i = 0; i < filas; i++) 
-         ary[i] = new char[columnas]; 
-   
-   
-     for(int i = 0; i < filas; i++)  //llena el arreglo bidimensional en memoria 
-         for(int j = 0; j < columnas; j++) 
-         { 
-             cout<<"Ingrese un char y presione enter= "; 
-             cin>>ary[i][j]; 
-         } 
-   
-     cout<<"\n\nEl texto es el siguiente= \n"; 
-   
-     for(int i = 0; i < filas; i++)  //imprime el arreglo bidimensional 
-     { 
-         for(int j = 0; j < columnas; j++) 
-         { 
-             cout << ary[i][j]; 
-         } 
-      cout<<"\n";  //salto de linea cada vez que se termina una linea 
-     } 
-   
- }