Cuando tengas una duda con uno de tus programas
por favor publica el código fuente de este, la idea es demostrar un esfuerzo
significativo. De no hacerlo el tema puede ser cerrado si se considera que es una petición de código fuente "en bandeja".
También debes indicar el lenguaje de programación ya que la aproximación a tomar depende de este.
En el caso de C ...
----
El programa que comentas es relativamente fácil, la parte mas complicada es buscar el primer y ultimo carácter que cumplan con el criterio indicado, para ello hay varias aproximaciones (por ejemplo una sentencia de selección switch, funciones parte de la biblioteca estándar de C como strcspn o sscanf, etc.).
Una forma sencilla consiste en utilizar la función strchr en la forma strchr("set", caracter) para conocer si el carácter en cuestión forma parte del set (conjunto) indicado.
Un ejemplo del uso de esa función para encontrar la primera y ultima vocal de una cadena es:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
char *linea = "sta es solo una cadena de pruebA";
int i;
int j;
int k;
j = -1; /* centinela */
for (i = 0; linea[i] != '\0'; i++)
if (strchr("aeiouAEIOU", linea
[i
]) != NULL
){ if (j == -1)
j = i;
k = i;
}
if (j != -1)
printf("Primera y ultima vocal: %c, %c\n", linea
[j
], linea
[k
]);
return EXIT_SUCCESS;
}
Con el resto (analizar las dos cadenas y realizar el intercambio si aplica) no debes tener problemas.
Un saludo