Ayuda con un ejercicio de programacion (lenguaje C)

Denunciar
Message postés
1
Date d'inscription
jueves, 23 de enero de 2020
Estatus
Miembro
Última intervención
jueves, 23 de enero de 2020
-
Hola,

La verdad es que necesito ayuda con un ejercicio

Ingrese por teclado un mensaje que conste al menos de dos palabras separadas por espacio.
Fije un máximo de 50 caracteres para el mensaje. Se asume que ud. ingresa el mensaje de manera
arbitraria y por lo tanto, no conoce cuantos caracteres ha ingresado.
Ingrese un segundo mensaje, pero ahora que conste de al menos tres palabras separadas por
espacio. Igual que el caso anterior, el máximo de caracteres es de 50.
Ingrese un tercer mensaje de una sola palabra de no más de 20 caracteres. Al ingresar esta palabra
ud. no sabe cuántos caracteres tiene.
Cree un programa que revise que el tercer mensaje se puede reconstruir, igual al ingresado por
teclado, usando caracteres de los dos primeros mensajes. Cada vez que ud. use un carácter del
primer o segundo mensaje, la posición desde donde saca el carácter para ir reconstruyendo el tercer
mensaje, debe reemplazarlo por una X mayúscula. Reconstruya el mensaje tres.
Imprima como quedan los mensajes uno, dos y el mensaje reconstruido.

No puedo usar funciones para resolver esto, por lo que no puedo ocupar nada que esté fuera del main, lo que llevo es esto... pero me salta un problema al imprimir el "mensaje2" y el mensaje reconstruido, ayuda!


int main(int argc, char *argv[])
{
char mensaje1[50];
char mensaje2[50];
char mensaje3[20];

printf("ingrese el mensaje 1= ");
scanf("%[^\n]", mensaje1);
printf("ingrese el mensaje 2= ");
scanf("%s\n", mensaje2);
fflush(stdin);
printf("ingrese el mensaje 3 (no mas de 20 caracteres)= ");
scanf("[^\n]", mensaje3);



for(int i=0;i<strlen(mensaje3);i++) //EL FOR ANIDADO PERMITE COMPARAR CADA LETRA DE AMBAS PALABRAS
{ for(int j=0;j<strlen(mensaje1);j++)
for(int k=0;k<strlen(mensaje2);k++)

{ if((mensaje3[i]==mensaje1[j])&&mensaje3[i]!=' '&&mensaje1[j]!=' ')
{ mensaje1[j]='X';

if((mensaje3[i]==mensaje2[k])&&mensaje3[i]!=' '&&mensaje2[k]!=' ')
{
mensaje2[k]='X'; }
}
}


}
printf("Primer mensaje ingresado= %s\n", mensaje1);
printf("Segundo mensaje ingresado= %s\n", mensaje2);
printf("Tercer mensaje (reconstruido)= %s%s\n", mensaje1,mensaje2);








return 0;
}