Título: Duda con strlen [Solucionado] Publicado por: Dark00 en 10 Noviembre 2012, 20:16 pm Hola queridos amigos, acabo de registrarme en este magnifico foro, vengo a plantearles una
pequeña duda y es la siguiente: Tengo pensado leer por ejemplo una frase como esta: Código
Quiero que me devuelva la catidad de letras que contiene esta frase sin el espacio en blanco he probado con strlen pero esta incluye tembien el espacio, me preguntaba si habria algun metodo de implementar esta exceptuando el espacio, estare pendiente de sus respuestas, gracias Un saludo amigos! Título: Re: Duda con strlen Publicado por: 0xDani en 10 Noviembre 2012, 20:52 pm Código
Título: Re: Duda con strlen Publicado por: leosansan en 10 Noviembre 2012, 21:01 pm Una forma simple sería:
Código Saludos!. P.D:El problema en el código de 0xDani es que el primer caracter sea un espacio en blanco, entonces el if se queda en un bucle cerrado. Título: Re: Duda con strlen Publicado por: naderST en 10 Noviembre 2012, 21:54 pm Código
Título: Re: Duda con strlen Publicado por: 0xDani en 10 Noviembre 2012, 23:15 pm @leosansan, modificado.
@naderST, muy bueno el codigo, pero se me ocurre una mejora, o al menos no hay que utilizar el if: Código
Aunque seguramente el compilador va a generar el mismo codigo, asi queda mas "pro" :'P Título: Re: Duda con strlen Publicado por: leosansan en 10 Noviembre 2012, 23:43 pm Inspirado por 0xDani y sin función:
Código Saludos!. Título: Re: Duda con strlen Publicado por: Dark00 en 10 Noviembre 2012, 23:49 pm Muchas gracias a todos por su valiosa ayuda; muy buenos codigos todos por cierto, me llamo la atencion el de naderST prodrias explicarmelo, ya que no lo entiendo del todo especificamente en la parte de la condicion del for.
Código
Un saludo amigos ;D Título: Re: Duda con strlen Publicado por: rir3760 en 11 Noviembre 2012, 03:22 am Bueno, aquí voy de metiche, pedante y [CENSORED]. Con todo espero se tome como una critica constructiva.
pero se me ocurre una mejora, o al menos no hay que utilizar el if: Honestamente no. Ello porque el operador "?:" requiere de tres operandos, utilizar solo dos (como en tu caso) es un error.Código Aunque seguramente el compilador va a generar el mismo codigo, asi queda mas "pro" :'P La recomendación en estos casos es: A) Si se debe realizar una operación ante una condición dada se utiliza una sentencia de selección (por ejemplo "if"). B) Si se debe elegir uno de dos valores se utiliza el operador "?:" De nuevo: es una recomendación, nada impide usar el operador "?:" a rajatabla pero en semejante escenario su uso esta a la altura de las palabras reservadas "auto" y "register". Veamos el ejemplo de leosansan: Código Al agregar el cero solo para cumplir con la sintaxis del lenguaje terminamos con una construcción forzada ya que solo nos interesa el incremento del contador, nada mas (y esa es la clave). Para el caso es mejor: Código En el sentido de ser solo lo necesario. Un saludo Título: Re: Duda con strlen Publicado por: naderST en 11 Noviembre 2012, 17:18 pm Muchas gracias a todos por su valiosa ayuda; muy buenos codigos todos por cierto, me llamo la atencion el de naderST prodrias explicarmelo, ya que no lo entiendo del todo especificamente en la parte de la condicion del for. Código
Un saludo amigos ;D Lo que hace es que va recorriendo la cadena, pero con aritmética de apuntadores. Al sumarle uno al apuntador en cada ciclo va a apuntando al siguiente caracter, es decir, va recorriendo la cadena. Lo de *s es equivalente a decir *s != '\0' va haciendo el ciclo mientras el contenido de s, que sería el caracter actual, sea distinto del caracter nulo. Título: Re: Duda con strlen Publicado por: Dark00 en 11 Noviembre 2012, 19:17 pm Excelente explicacion naderST ahora lo entiedo todo, funciona perfecto tu codigo;
muchas gracias por darte el tiempo de explicarmelo Un saludo! |