Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Cabanota en 17 de Junio 2015, 18:23

Título: PHP Ejercicios resueltos funciones cadenas contar letras reemplazar CU00828B
Publicado por: Cabanota en 17 de Junio 2015, 18:23
Hola colegas. Aquí traigo mi posible solución del punto a, b, c y d, de este tema Solo que quería saber si así como lo realice esta bien, y en el caso de que lo este, me gustaría saber de que forma puedo mejorar y optimizar.. Estaré agradecido con ustedes. Muchas gracias.

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.

POSIBLE SOLUCION:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
</head>
<body>
<?php
$consonantes = array("b""d""f""g""h""j""k""l""m""n""ñ""p""q""r""s""t""v""x""y""z");
$cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso";

echo "<br/> APARTADO A) <br/>";

$resul count_chars($cadena1);

foreach ($resul as $key => $value) {
echo chr($key)  . " -> " $value "<br/>";
}

echo "<br/> APARTADO B) <br/>";

for ($i=0$i strlen($cadena); $i++) { 
$subcadenitas substr($cadena$i1);

for ($j=0$j count($consonantes); $j++) { 
if ($subcadenitas ==  $consonantes[$j]) {
$agregando $agregando $subcadenitas;
break;
}
}
}
$resul2 count_chars($agregando1);

foreach ($resul2 as $key => $value) {
echo chr($key) . " -> " $value "<br/>";
}

echo "<br/> APARTADO C) <br/>";

$resul3 str_replace("a""*"$cadena);
echo "Resultado: " $resul3;

echo "<br/><br/>APARTADO D) <br/>";

$cortar strstr($cadena"completo"false);
$resul4 trim($cortar"completo");
echo $resul4;
?>

</body>
</html>
Título: Re:PHP Ejercicios resueltos funciones cadenas contar letras reemplazar CU00828B
Publicado por: César Krall en 19 de Junio 2015, 15:40
Hola Cabanota!

El apartado a) no es lo que pedía el ejercicio. El ejercicio pide que digas cuántas vocales hay en la frase de cada tipo. Por ejemplo en la frase "Hace calor" tendríamos:

a - > 2
e - > 1
i - > 0
o - > 1
u - > 0

Este post puede servir de orientación: https://www.aprenderaprogramar.com/foros/index.php?topic=1379

El apartado b) está incompleto, por ejemplo no aparece la c, que es una de las consonantes.

El apartado c) está correcto

En el apartado D) me aparece un error Warning: Wrong parameter count for strstr() ¿A tí te funciona?


Saludos!