Autor Tema: PHP funciones count_chars in_array, chr, strstr, str_replace, substr CU00828B  (Leído 3151 veces)

Elanti

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 30
    • Ver Perfil
Citar
EJERCICIO

Crear archivos php que ejecuten la tarea indicada:

a) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso", indicar cuántas veces aparece cada vocal usando funciones para cadenas PHP.

b) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso", indicar qué consonantes son las que aparecen y cuántas veces aparecen usando funciones para cadenas PHP.

c) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso", mostrar la cadena donde todas las a hayan sido sustituídas por el símbolo *. Por ejemplo en lugar de <<El abecedario…>> se habrá de mostrar <<El *beced*rio…>>

d) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso", mostrar la subcadena desde la primera aparición de <<completo>> excluyendo completo, es decir, deberá mostrarse << es algo largo y detallarlo exhaustivamente es costoso>>. Para ello usa una o varias funciones para cadenas PHP.

Logré resolver correctamente este ejercicio. Pero como siempre hay más de una forma de hacer las cosas, dejo mi código por si alguien tiene algún comentario o sugerencia de mejora:

Código: [Seleccionar]
<?php 
$cad
="El abecedario completo es algo largo y detallarlo exhaustivamente es costoso";
$cad strtolower($cad);
$vocales = array("a","e","i","o","u");

echo 
"<strong>Parte a)</strong><br /><br />";

///////////////////////////PARTE A:   ///////////////////////////////////////////////

foreach ($vocales as $vocal){
    echo 
"La vocal '$vocal' aparece "substr_count($cad,$vocal); 
    switch (
substr_count($cad,$vocal)){
        case 
1:
            echo 
" vez. <br />";
            break;
        default:
            echo 
" veces. <br />";
    }
}

echo 
"<br />";
echo 
"<strong>Parte b)</strong><br /><br />";

///////////////////////////PARTE B:   //////////////////////////////////////////////////

foreach (count_chars($cad,1) as $letra=>$ocurrencias){
    if (
in_array(chr($letra),$vocales)){
        continue;
    }else if (
chr($letra)==" "){
        continue;        
    }else if (
$ocurrencias==1){
        echo 
"La consonante ","'"chr($letra),"'"" aparece "$ocurrencias" vez<br />";
    }
    else{
        echo 
"La consonante ","'"chr($letra),"'"" aparece "$ocurrencias" veces<br />";
    }
}
echo 
"<br />";
echo 
"<strong>Parte c)</strong><br /><br />";

////////////////////////// PARTE C:   //////////////////////////////////////////////////////

echo str_replace("a","*",$cad);
echo 
"<br />";
echo 
"<br />";
echo 
"<strong>Parte d)</strong><br /><br />";

////////////////////////// PARTE D:   //////////////////////////////////////////////////////

$concompleto strstr($cad,"completo");
$sincompleto substr($concompletostrlen("completo"));
echo 
$sincompleto;
?>
« Última modificación: 13 de Septiembre 2015, 21:56 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:PHP funciones count_chars in_array, chr, strstr, str_replace, substr CU00828B
« Respuesta #1 en: 13 de Septiembre 2015, 21:57 »
Hola Elanti, visto y probado el código pienso que está bien resuelto. Has utilizado algunas funcionalidades o instrucciones que no se explican en el curso. Por ejemplo la función in_array para comprobar si un elemento existe dentro de un array, la función chr para obtener la letra asociada a un valor numérico asc ii, etc. Pero bueno, lo importante es que hayas logrado resolverlo por tí mismo y además lo has hecho bien.

Para mostrar "vez" o "veces" has usado un switch evaluando si una vocal aparece una vez o más de una vez. Normalmente si sólo hay una alternativa (en este caso 1 vez ó mas) se hace con un if ¿Por qué lo hiciste con un switch?

Saludos

Elanti

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 30
    • Ver Perfil
Re:PHP funciones count_chars in_array, chr, strstr, str_replace, substr CU00828B
« Respuesta #2 en: 13 de Septiembre 2015, 22:09 »
Hola, Alex:
Gracias por tus comentarios. Efectivamente, estoy complementando lo que aprendo aquí con lo que aprendo en otros sitios, y tomo un poco de aquí y un poco de allá.
Lo de "switch" fue simplemente para probar algo diferente.
¡Saludos!

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".