Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: mapers en 8 Marzo 2011, 06:21 am



Título: ignorar espacios en blanco
Publicado por: mapers en 8 Marzo 2011, 06:21 am
señores del foro cuando intento capturar una cadena a veces se me sañtan algunas instrucciones ................es por lo s espacios en blanco existe alguna funcion que los ignore..............a ver  algo asi creo que es cin.ignore


Título: Re: ignorar espacios en blanco
Publicado por: Akai en 8 Marzo 2011, 21:04 pm
C o C++?

http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html


Título: Re: ignorar espacios en blanco
Publicado por: Shell Root en 8 Marzo 2011, 21:07 pm
C++
Código
  1. std::remove(astring.begin(), astring.end(), ' ');

C
Código
  1. char *trim(char *str){
  2.  char ptr[strlen(str)+1];
  3.  int i, j=0;
  4.  for(i=0; str[i]!='\0'; i++){
  5.    if (str[i] != ' ' && str[i] != '\t')
  6.      ptr[j++] = str[i];
  7.  }
  8.  ptr[j] = '\0'
  9.  str = ptr;
  10. }


Título: Re: ignorar espacios en blanco
Publicado por: Akai en 8 Marzo 2011, 21:19 pm
Shell Root, me parece que se refiere más a cuando lee de consola,creo.

en caso de que sea lo que yo comenté:

Código
  1. cin.getline(cadena,tamaño-1,'\n')
de esa forma, lees la linea entera, teniendo como separador de linea el salto de linea, tragándote el espacio.

Código
  1. scanf("%s \n",cadena);
  2.  

Si no me he equivocado en algo de la sintaxis, en principio la idea debería ser esa.