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: hymsoft en 22 de Mayo 2017, 23:06

Título: Funciones cadenas string caracteres PHP concatenacion STRLEN SUBSTR (CU00821B)
Publicado por: hymsoft en 22 de Mayo 2017, 23:06
Buenas!!! Solución al ejercicio CU00821B del manual de programación web con PHP y editor Notepad++.

Citar
Crea el código PHP que cumpla con lo que se indica a continuación:

a) Declara una variable cuyo contenido sea la cadena "Didáctica y divulgación de la programación"

b) Usando la función substr extrae cada una de las palabras de la cadena anterior a una variable. Como tenemos 6 palabras, debes tener 6 variables con las subcadenas.

c) Usando la concatenación muestra por pantalla lo siguiente: <<Las palabras primera, tercera y sexta son: Didáctica, divulgación, programación>>

d) Usando strlen muestra por pantalla lo siguiente: <<La palabra primera es Didáctica y tiene 9 caracteres, la palabra tercera es divulgación y tiene 11 caracteres. La palabra sexta es programación y tiene 12 caracteres>>
Código: [Seleccionar]
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>CU00821B - Solución</title>
</head>
<body>
<?php
//variables

                
$miCadena "Didactica y divulgacion de la programacion";
$subCadena1 substr($miCadena,0,9);
$subCadena2 substr($miCadena,10,1);
$subCadena3 substr($miCadena,12,11);
$subCadena4 substr($miCadena,24,2);
$subCadena5 substr($miCadena,27,2);
$subCadena6 substr($miCadena,30,12);

echo "Las palabras primera, tercera y sexta son: " $subCadena1 ", " $subCadena3 ", " $subCadena6 "<br><br>";

echo "La palabra primera es " $subCadena1 .  " y tiene " strlen($subCadena1) . " caracteres,";
echo " la palabra tercera es " $subCadena3 .  " y tiene " strlen($subCadena3) . " caracteres.";
echo " La palabra sexta es " $subCadena6 .  " y tiene " strlen($subCadena6) . " caracteres,";
?>

</body>
</html>

Acceso web: http://hymsoft.byethost33.com/CU00821B.php (http://hymsoft.byethost33.com/CU00821B.php)

Podrías explicarme porque cuando uso acentos, substr se comporta de manera extraña??? cambiándome la cantidad de caracteres eh incluso imprimiendo caracteres no reconocidos???

Saludos!!!!
Título: Re:Funciones cadenas string caracteres PHP concatenacion STRLEN SUBSTR (CU00821B)
Publicado por: pedro,, en 25 de Mayo 2017, 10:03
Buenas hymsoft.

Si usas los acentos tienes que tener en cuenta que cada acento se cuenta como un carácter más. Prueba a cambiar esta parte:
Código: [Seleccionar]
$miCadena = "Didáctica y divulgación de la programación";
        $subCadena1 = substr($miCadena,0,10);
        $subCadena2 = substr($miCadena,11,1);
        $subCadena3 = substr($miCadena,13,12);
        $subCadena4 = substr($miCadena,26,2);
        $subCadena5 = substr($miCadena,29,2);
        $subCadena6 = substr($miCadena,32,13);

Saludos. ;D