Se trata de encontrar en un string grupos de dos palabras de las cuales la primera tiene una longitud P y la segunda una longitud S.
¿Como podemos identificar una palabra y conocer su longitud? Averiguando en que posiciones del string comienza y termina la palabra.
¿Donde puede comenzar una palabra? En el primer caracter "no espacio" del string o el primer caracter "no espacio" despues de un espacio.
¿Donde termina una palabra? En el ultimo caracter "no espacio" antes de un espacio.o en el final del string
Y por supuesto el final de cada palabra debe ser posterior al inicio, y el comienzo de cada palabra debe ser posterior al final de la anterior.
Asumo que el unico separador entre palabras es el espacio ' ' o caracter 32 en el código ASCII. En teoría puede haber otros como el
retorno de carro y el salto de línea, pero vamos a mantener el ejemplo sencillo.
Vamos a hacer un procedimiento que obtenga las direcciones de inicio y final de la primerra palabra que aparezca desde una direccion dada. Construimos una funcion que admite como parámetros la frase a tratar y la direccion a partir de la cual queremos encontrar una
palabra. Por ejemplo, si Frase = 'La mesa hay que pintarla con un color de moda' i DirIni = 8, la palabra que encontrará será 'hay' que está en la posicion 9 y tiene una longitud de 3 caracteres. La funcion que presento a continuacion devolvería un 9 en DirIni y un valor de 3 como resultado de la funcion. Si no se encuentra ninguna palabra, devuelve 0.
Para comprobar que funciona ejecutamos el siguiente código:
Y obtenemos:
Con esta funcion ya es facil resolver el ejercicio: Se van aislando las palabras una por una y cuando aparezca una de longoitud p se comprueba si la siguiente tiene longitud S. O se pueden copiar todas las logitudes en un vector y luego examinarlo para ver si en su secuencia de valores aparece la pareja P, S. En fin no es nada complicado.
Un ejemplo que tiene algunas oportunidades para optimizar, pero funciona creo que funciona::
Quedan por solucionar los detalles de pedir al operador los valores de P y S, así como la frase e integrar estos procedimientos en un programa completo. Eso, a gusto del consumidor.
Es mejor restringir los caracteres de la frase a los disponibles en el codigo ASCII porque las eñes, vocales acentuadas i vocales con diéresis ocupan más de un byte por caracter y eso podría hacer descarrilar la función CalcPalabra.
Suerte y que tengas un buen día.