Adjunto mis soluciones al tema CU00828B del curso elemental de programación web con PHP.
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<?php
// APARTADO A
$cadena = 'El abecedario completo es algo largo y detallarlo
exhaustivamente es costoso';
$cadena_minusculas = strtolower($cadena);
$miArray = count_chars ( $cadena_minusculas, 1);
$vocalA = 0 ; $vocalE = 0 ; $vocalI = 0 ; $vocalO = 0 ; $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.