elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Detectar espacios en blanco.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Detectar espacios en blanco.  (Leído 19,708 veces)
javahat

Desconectado Desconectado

Mensajes: 37


Ver Perfil
Detectar espacios en blanco.
« en: 22 Mayo 2010, 02:03 am »

Hola, que función en C me permite detectar espacios en blanco? por ejemplo:

Raul Martinez Perez Soleil  <----3 espacios en blanco.
Peter Memphis<----1 espacio en blanco.



En línea

08l00D

Desconectado Desconectado

Mensajes: 168


Ver Perfil
Re: Detectar espacios en blanco.
« Respuesta #1 en: 22 Mayo 2010, 02:19 am »

Si la queres aplicar sobre una cadena, desconozco una funcion. Si se que hay una llamada isspace que retorna verdadero si el caracter que le pasaste es un espacio. Igualmente se puede adecuar facilmente para que haga lo que vos queres. Recorres la cadena con un for y aplicando esa funcion, y contando cada aparicion de un espacio... sino busca en internet que seguro esta la funcion adecuada para que trabaje con una cadena .... pero basicamente haria eso .. tambien podrias borrar cualquier espacio "sobrante" en la cadena que no sea deseado en al comienzo y fin de la cadena...


En línea

sch3m4
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.608

Nihil est in intelectu quod prius not fuerit insen


Ver Perfil WWW
Re: Detectar espacios en blanco.
« Respuesta #2 en: 22 Mayo 2010, 03:18 am »

Tienes tres opciones, una como bien te han dicho es usando isspace (recorres con un for la cadena y compruebas la posición actual con isspace y si es verdadero incrementas tu contador), otra es usar strchr, y otra strtok.

:http://www.opengroup.org/onlinepubs/009695399/functions/isspace.html
:http://www.opengroup.org/onlinepubs/000095399/functions/strtok.html
:http://www.opengroup.org/onlinepubs/009695399/functions/strchr.html
En línea

SafetyBits

"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.(..
.:BlackCoder:.


Desconectado Desconectado

Mensajes: 388


Cada dia C++!!


Ver Perfil
Re: Detectar espacios en blanco.
« Respuesta #3 en: 22 Mayo 2010, 04:03 am »

Creo que con strtok se le va a complicar un poco, cuando hayan mas de 1 espacio seguido... aunque nunca he tenido la necesidad de usar la funcion, pero si se mas o menos como funciona... Mejor usa isspace, o inventate tu mismo la funcion....
En línea

"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja



nicolas_cof


Desconectado Desconectado

Mensajes: 348


Into the Wild


Ver Perfil WWW
Re: Detectar espacios en blanco.
« Respuesta #4 en: 22 Mayo 2010, 08:43 am »

Aca te dejo un codigo, para que mas o menos te des una idea...

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <ctype.h>
  4.  
  5. int
  6. main( void )
  7. {
  8.    char m[] = "Raul Martinez Perez Soleil";
  9.    int i, espacios1 = 0, espacios2 = 0;
  10.  
  11.    for ( i = 0; i < strlen( m ); ++i )
  12.    {  
  13.        if ( m[i] == 32 ) ++espacios1; // 32 = valor decimal del espacio (ascii)
  14.        if ( isspace( m[i] ) ) ++espacios2;
  15.    }  
  16.  
  17.    printf( "cadena:%s - espacios1:%d - espacios2:%d \n", m, espacios1, espacios2 );
  18.  
  19.    return 0;
  20. }

Salu10.
« Última modificación: 22 Mayo 2010, 08:46 am por nicolas_cof » En línea

javahat

Desconectado Desconectado

Mensajes: 37


Ver Perfil
Re: Detectar espacios en blanco.
« Respuesta #5 en: 24 Mayo 2010, 16:59 pm »

Gracias.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines