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
-
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.
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:
<!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($cadena, 1);
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, $i, 1);
for ($j=0; $j < count($consonantes); $j++) {
if ($subcadenitas == $consonantes[$j]) {
$agregando = $agregando . $subcadenitas;
break;
}
}
}
$resul2 = count_chars($agregando, 1);
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>
-
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!