Foros del Web » Programación para mayores de 30 ;) » C/C++ »

C++: Quitar espacios en blanco de una cadena

Estas en el tema de C++: Quitar espacios en blanco de una cadena en el foro de C/C++ en Foros del Web. Hola ¿Como se pueden quitar los espacios en blanco de una cadena de char *? Algo del tipo: char *a = (char *) malloc (256); ...
  #1 (permalink)  
Antiguo 10/08/2006, 06:15
Avatar de javimartinez  
Fecha de Ingreso: marzo-2003
Ubicación: Leganés (Madrid)
Mensajes: 284
Antigüedad: 21 años, 1 mes
Puntos: 1
Pregunta C++: Quitar espacios en blanco de una cadena

Hola

¿Como se pueden quitar los espacios en blanco de una cadena de char *?

Algo del tipo:

char *a = (char *) malloc (256);

//obtenemos de alguna forma

a = ¿<<a sin espacios en blanco del final>>?

strcat (..........


Gracias y un saludo :)
__________________
Javi Martínez

Web: Acertijolandia Blog: A Entretenerse
  #2 (permalink)  
Antiguo 15/08/2006, 21:21
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Puedes analizar la cadena con un ciclo for donde cada iteracion checas cada elemento de la cadena y si es espacio lo omites.

La otra manera es usando las funciones estandar en string.h(strchr, strtok, etc);
En la msdn puedes encontrar monton de info sobre las funciones.

Saludos
  #3 (permalink)  
Antiguo 09/07/2011, 18:03
 
Fecha de Ingreso: julio-2011
Mensajes: 5
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: C++: Quitar espacios en blanco de una cadena

Si fuese en C como seria??
  #4 (permalink)  
Antiguo 09/07/2011, 19:49
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: C++: Quitar espacios en blanco de una cadena

Código C:
Ver original
  1. for ( i = strlen(a) - 1; a[i] != ' ' ; i-- );
  2. a[i+1] = '\0';

Es simple empezamos al final de la cadena. vamos bajando mientra que sea un espacio, cuando encontramos otro caracter que no sea espacio. Agregamos el \0 (fin de cadena) donde estaria el primer espacio.
  #5 (permalink)  
Antiguo 12/07/2011, 15:23
 
Fecha de Ingreso: abril-2011
Ubicación: Guadalajara, Jalisco, Mexico
Mensajes: 27
Antigüedad: 13 años
Puntos: 4
De acuerdo Respuesta: C++: Quitar espacios en blanco de una cadena

creo que aqui esta una rspuesta mas concreta y sencilla:

Código C++:
Ver original
  1. #include <iostream>
  2.  
  3. int main()
  4. {
  5.     char palabra[30];
  6.    
  7.     std::cout<<"Ingresa una palabra: ";
  8.     std::cin.getline(palabra,30);//optienes la cadena completa del arreglo
  9.    
  10.     for(int  i = 0; palabra[i] != 0;++i)
  11.         if(palabra[i] != 32)//32 significa espacio en codigo ascii!!    
  12.             std::cout<<palabra[i];
  13.     std::cin.get();
  14.     return 0;
  15. }
  #6 (permalink)  
Antiguo 12/07/2011, 20:01
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: C++: Quitar espacios en blanco de una cadena

El tema que haces solo la imprimis. No la podes usar para otra cosas sin los espacios.
  #7 (permalink)  
Antiguo 12/07/2011, 23:05
Avatar de CapacProg  
Fecha de Ingreso: marzo-2010
Ubicación: Lima - Perú
Mensajes: 324
Antigüedad: 14 años, 1 mes
Puntos: 71
Respuesta: C++: Quitar espacios en blanco de una cadena

Desde que una cadena es un vector, la recorres con un ciclo for y vas sólo extrayendo los caracteres que son diferentes al espacio en blanco, estos los guardas en otra cadena o lo muestras directamente, como desees.
__________________
%
El mejor guerrero no es el que triunfa siempre sino el que vuelve sin miedo a la batalla.
%
  #8 (permalink)  
Antiguo 14/07/2011, 11:53
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: C++: Quitar espacios en blanco de una cadena

Notar que hay una diferencia entre lo que dice el titulo del tema y lo que dice la descripcion.
"Sacar los espacios en blanco de un string " que es lo que veo se responde, no es equivalente a "Sacar los espacios en blanco del final de un string", lo que se especifica.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 10:52.