Autor Tema: PHP Funciones cadenas contar el número de veces que aparece una letra CU00828B  (Leído 2915 veces)

bermartinv

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 298
    • Ver Perfil
Adjunto mis soluciones al tema CU00828B del curso elemental de programación web con PHP.

Citar
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.

http://cursophp.byethost14.com/aprenderaprogramar/strings_CU00828B.php

Código: [Seleccionar]
<?php
// APARTADO A
$cadena 'El abecedario completo es algo largo y detallarlo
exhaustivamente es costoso'
;
$cadena_minusculas strtolower($cadena);
$miArray count_chars $cadena_minusculas1);
$vocalA $vocalE $vocalI $vocalO $vocalU 0;
foreach (
$miArray as $indice => $valor) {

   switch (
chr($indice)) {

     case 
'a' :
       echo 
'Se han escrito '.$valor;
       if (
$valor 1){
         echo 
' veces la letra '.(chr($indice)).'.<br/>';
       }else{
        echo 
' vez la letra '.(chr($indice)).'.<br/>';
       }
       break;
    case 
'e' :
       echo 
'Se han escrito '.$valor;
       if (
$valor 1){
         echo 
' veces la letra '.(chr($indice)).'.<br/>';
       }else{
        echo 
' vez la letra '.(chr($indice)).'.<br/>';
       }
      break;
    case 
'i' :
       echo 
'Se han escrito '.$valor;
       if (
$valor 1){
         echo 
' veces la letra '.(chr($indice)).'.<br/>';
       }else{
        echo 
' vez la letra '.(chr($indice)).'.<br/>';
       }
      break;
    case 
'o' :
       echo 
'Se han escrito '.$valor;
       if (
$valor 1){
         echo 
' veces la letra '.(chr($indice)).'.<br/>';
       }else{
        echo 
' vez la letra '.(chr($indice)).'.<br/>';
       }
      break;
    case 
'u':
       echo 
'Se han escrito '.$valor;
       if (
$valor 1){
         echo 
' veces la letra '.(chr($indice)).'.<br/>';
       }else{
        echo 
' vez la letra '.(chr($indice)).'.<br/>';
       }
      break;
     default:


       break;
   }
}
// APARTADO B
   
foreach ($miArray as $indice => $valor) {

      switch (
chr($indice)) {
        case 
' ' : break;
        case 
'a' : break;
        case 
'e' : break;
        case 
'i' : break;
        case 
'o' : break;
        case 
'u' : break;
        default:
            echo 
'Letra distinta a vocal:    '.chr($indice).' , encontrada '.  $valor;
            if (
$valor 1){
              echo 
' veces .<br/>';
            }else{
             echo 
' vez .<br/>';
            }
          break;
    }

}
// APARTADO C
echo 'Sustitucion letra "a" por el caracter "*"</br> ';
echo 
str_replace('a','*',$cadena).'</br>';

//APARTADO D
echo 'La frase a continuacion de la palabra "completo" es: </br>';
$posicion strpos($cadena,'completo');
$completo strlen('completo');
echo 
substr($cadena,$completo+$posicion);
 
?>


Saludos.  ;)
« Última modificación: 25 de Marzo 2017, 22:19 por Ogramar »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:Curso PHP. Funciones cadenas. CU00828B
« Respuesta #1 en: 31 de Enero 2017, 17:00 »
Hola bermatinv.

El ejercicio está bien resuelto, había varias formas de resolverlo, solo comentarte que en el apartado a te hubieses ahorrado algunas líneas usando "substr_count($cadena,$subcadena)".

Te dejo un enlace con una solución distinta:

https://www.aprenderaprogramar.com/foros/index.php?topic=4135.msg17346#msg17346

Saludos. ;D

 

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".