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

programa en c para eliminar espacios al principio y al final de una cadena

Estas en el tema de programa en c para eliminar espacios al principio y al final de una cadena en el foro de C/C++ en Foros del Web. que tal necesito un código para quitar los espacios al principio y al final de una cadena por ejemplo: introducimos " ser o no ser ...
  #1 (permalink)  
Antiguo 08/11/2012, 23:20
 
Fecha de Ingreso: noviembre-2012
Mensajes: 6
Antigüedad: 11 años, 5 meses
Puntos: 0
Pregunta programa en c para eliminar espacios al principio y al final de una cadena

que tal necesito un código para quitar los espacios al principio y al final de una cadena por ejemplo: introducimos " ser o no ser " y tiene que regresar "ser o no ser" ,
  #2 (permalink)  
Antiguo 09/11/2012, 02:13
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: programa en c para eliminar espacios al principio y al final de una cadena

¿Qué es lo que no sabes hacer? ¿Qué código tienes hasta ahora? ¿Por qué no funciona tu código?
  #3 (permalink)  
Antiguo 09/11/2012, 02:27
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 13 años, 11 meses
Puntos: 73
Respuesta: programa en c para eliminar espacios al principio y al final de una cadena

#include <ctype.h>
int isalnum(int c);

Esta función devuelve TRUE si el caracter es alfanumerico (no es un espacio ni un caracter de control).

Comenzando por el principio de la cadena, avanza hasta encontrar un caracter alfanumérico. Guarda el índice de ese carácter, corresponde al primer carácter no-blanco.

Comenzando por el final de la cadena, retrocede hasta encontrar un carácter alfanumérico. Guarda el índice de ese carácter, corresponde al último carácter no-blanco.

Copia en otra cadena los caracteres entre el primer índice y el segundo índice.

Para ver la longitud de la cadena, tienes la función strlen:

#include <string.h>
int strlen(const char *s);
  #4 (permalink)  
Antiguo 09/11/2012, 03:55
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: programa en c para eliminar espacios al principio y al final de una cadena

Ese es el enunciado de tu problema, no lo que llevas hecho tú hasta ahora. Aquí resolvemos las dudas, no hacemos tareas de las clases. Tus tareas debes hacerlas tú.
  #5 (permalink)  
Antiguo 09/11/2012, 10:03
Avatar de cotolon  
Fecha de Ingreso: octubre-2012
Mensajes: 55
Antigüedad: 11 años, 6 meses
Puntos: 10
Respuesta: programa en c para eliminar espacios al principio y al final de una cadena

Puedes usar 2 whiles
No se si se pueden eliminar directamente los espacios
pero puedes usar 1 while para chequear cuantos espacios hay desde frase[0] hasta encontrar la primera letra -> te devuelve posicion 3 por ej
y el otro while para chequear desde frase[8] (8 seria el ultimo elemento) hacia atras hasta encontrar la primera letra. -> te devuelve posicion 6 por ej

y creo q hay una funcion string que puedes copiar de la posicion 3 a la 6
  #6 (permalink)  
Antiguo 12/11/2012, 00:17
 
Fecha de Ingreso: noviembre-2012
Mensajes: 6
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: programa en c para eliminar espacios al principio y al final de una cadena

me falta quitar los espacios del final :

#include <stdio.h>
#include<string.h>

void suprime(char cadena[]);

main()
{
char msg[100];

gets(msg);
suprime(msg);
getch();

}


void suprime(char cadena[])
{

char cad[100];
int x=0, z=0, y=strlen(cadena);




while(cadena[x]==' ')
{
if(cadena[x]==' ')
x++;
}


while(cadena[x]!='\0')
{

cad[z]=cadena[x];
x++;
z++;
}


printf("%s",cad);
}
  #7 (permalink)  
Antiguo 12/11/2012, 04:14
 
Fecha de Ingreso: agosto-2008
Mensajes: 240
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: programa en c para eliminar espacios al principio y al final de una cadena

Hola,

es buena idea contar el número de espacios que tienes al final tal y como te ha comentado cotolon. A partir de ese dato, yo usaría la misma cadena y un sólo bucle, en el que "desplazara" la frase al principio machacando los espacios previos. Al terminar el texto válido, acuérdate de poner el carácter barra-cero ('\0') para poder mostrarla correctamente.

Un saudo,
gonzo
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




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