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:
<!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