Autor Tema: PHP Comparar cadenas y añadir caracteres a la izquierda o derecha CU00829B  (Leído 2013 veces)

Pepote21

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 92
    • Ver Perfil
Hola a todos. Os dejo mi código para el ejercicio CU00829B del curso básico de desarrollo web con PHP.

Gracias a todos. Un saludo.

Código: [Seleccionar]
<!DOCTYPE html>
<html>
    <head>
        <title>Ejercicio tema CU00829B aprenderaprogramar.com</title>
        <meta charset="utf-8">
       
    </head>
    <body>
   
    <?php
    echo '<h4>Ejercicio a)<h4/>';
    $cadena1='aprender';
$cadena2='aprende';
echo 'La cadena 1 es '.$cadena1.'<br/>';
echo 'La cadena 2 es '.$cadena2.'<br/>';
echo '<p>'.str_pad($cadena1, (strlen($cadena1)+10) , "*"STR_PAD_BOTH).'</p>';
    echo '<p>'.str_pad($cadena2, (strlen($cadena2)+10) , "*"STR_PAD_BOTH).'</p>';
echo '<hr>';
echo '<h4>Ejercicio b)<h4/>';
echo 'Comparación de los tres primeros caracteres de las dos cadenas<br/>';
if (strncmp($cadena1$cadena2,3) == 0) {
        echo 'Según strncmp las dos cadenas son iguales';
        }else {
        echo 'Según strncmp las dos cadenas NO son iguales'
        }
echo '<hr>';
echo '<h4>Ejercicio c)<h4/>';
$cadena3='ApRendEr A proGraMar.cOm';
echo 'La cadena 3 es '.$cadena3.'<br/>';
$cad3min=strtolower($cadena3);//A minúsculas
$cad3size=strlen($cad3min);//Tamaño de la cadena
if($cad3size%2==0){
echo str_pad($cad3min,$cad3size+$cad3size/2,'*',STR_PAD_BOTH).'<br/>';
}else{
echo str_pad($cad3min,$cad3size+($cad3size+1)/2,'*',STR_PAD_BOTH).'<br/>'
}
echo '<hr>';
?>

   
   
       
    </body>
</html>
« Última modificación: 14 de Septiembre 2017, 19:41 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Re:PHP Comparar cadenas y añadir caracteres a la izquierda o derecha CU00829B
« Respuesta #1 en: 14 de Septiembre 2017, 19:42 »
Buenas, los apartados a) y b) están correctos

En el apartado c) habría alguna cuestión a comentar

Supongamos que la cadena tiene longitud 3 (impar)

Al ejecutar $cad3min,$cad3size+($cad3size+1)/2 tendríamos 3+4/2 = 3+2 = 5 asteriscos que se reparten 2 a un lado y 3 a otro.

Para rellenar con 3 y 3 asteriscos podríamos usar

echo str_pad($cad3min,$cad3size+1+($cad3size+1)/2,'*',STR_PAD_BOTH).'<br/>';

Con esto realmente a cada lado de la cadena se muestra la mitad de la mitad de los asteriscos.

Para mostrar a cada lado la mitad de los asteriscos (la mitad de la longitud de la palabra) podríamos usar este código:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
    <head>
        <title>Ejercicio tema CU00829B aprenderaprogramar.com</title>
        <meta charset="utf-8">
       
    </head>
    <body>
   
    <?php
    echo '<h4>Ejercicio a)<h4/>';
    $cadena1='aprender';
$cadena2='aprende';
echo 'La cadena 1 es '.$cadena1.'<br/>';
echo 'La cadena 2 es '.$cadena2.'<br/>';
echo '<p>'.str_pad($cadena1, (strlen($cadena1)+10) , "*"STR_PAD_BOTH).'</p>';
    echo '<p>'.str_pad($cadena2, (strlen($cadena2)+10) , "*"STR_PAD_BOTH).'</p>';
echo '<hr>';
echo '<h4>Ejercicio b)<h4/>';
echo 'Comparación de los tres primeros caracteres de las dos cadenas<br/>';
if (strncmp($cadena1$cadena2,3) == 0) {
        echo 'Según strncmp las dos cadenas son iguales';
        }else {
        echo 'Según strncmp las dos cadenas NO son iguales'
        }
echo '<hr>';
echo '<h4>Ejercicio c)<h4/>';
$cadena3='ApRendEr A proGraMar.cOma';
echo 'La cadena 3 es '.$cadena3.'<br/>';
$cad3min=strtolower($cadena3);//A minúsculas
$cad3size=strlen($cad3min);//Tamaño de la cadena
echo 'La cadena 3 tiene longitud '.$cad3size.'<br/>';
if($cad3size%2==0){
echo str_pad($cad3min,2*$cad3size,'*',STR_PAD_BOTH).'<br/>';
}else{
echo str_pad($cad3min,2*$cad3size+1,'*',STR_PAD_BOTH).'<br/>'
}
echo '<hr>';
?>

   
    </body>
</html>

Salu2

 

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