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
}
}