Cita de: NOB2014 en 6 Agosto 2014, 16:17 PM
Hola Leo.
Gracias "viejo" amigo por responder, corrí tú código y me dio el mismo error que a la mayoría, si la última palabra tiene 4 letras y no tiene un espacio entre la última letra y el '\0' no la sustituye.-
Bueno dejo mi versión.-
Saludos.
Daniel
¡¡¡ Un placer volver a verte por aquí !!!, amigo Daniel.
Ya ves que las prisas y el no testear a fondo un código tiene a veces esas consecuencias.
En realidad, y creo que como bien has observado, faltaba "la última comprobación", los cuatro últimos caracteres. Paso mi código con esa corrección:
Código (cpp) [Seleccionar]
************************************************
char frase [ ] = "1234 789 1234 321 9876 5678" ;
frase [ strlen ( frase ) ] =' ' ;
for ( i = 0 ; i < strlen( frase ) - 1 ; i++ ) {
if ( frase [ i ] != ' ' )
j++ ;
else if ( frase [ i ] == ' ' ) {
if ( j == 4 ){
cont++ ;
for ( k = i - 1 ; k >= i - 4 ; k-- )
frase [ k ] = '*' ;
}
j = 0 ;
}
}
frase [ i ] = '\0' ;
printf ( "\n\nLa frase final es: %s" , frase ) ;
printf ( "\n\nY contiene %d palabras de cuatro letras.\n\n" , cont ) ;
*******************************************************
Y lo dicho, un placer el volver a encontrarte, y espero que sea más a menudo ¡¡¡Campeón!!!!.
EDITADO para hacer uso de strlen y abreviar.
¡¡¡¡ Saluditos! ..... !!!!