Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Dato Vagabundo en 11 Enero 2017, 21:28 pm



Título: Quitar espacios de un cadena de caracteres
Publicado por: Dato Vagabundo en 11 Enero 2017, 21:28 pm
Hola buenas , he creado una función que elimina espacios de una cadena, pero tengo algunas dudas a la hora de terminarla, ya que con esto no me los junta. Si alguien puede echarme una mano.. Gracias!!

Código
  1. void trim (char *cadena)
  2. {
  3.    int ini, fin;
  4.    fin=strlen(cadena)-1;
  5.    while(fin >0 && (cadena[fin]==' ' || cadena[fin]=='\t' || cadena[fin]=='\n' || cadena[fin]=='\r'))
  6.        fin--;
  7.    fin++;
  8.    cadena[fin]='\0';
  9.  
  10.    ini=0;
  11.    while(ini<fin && (cadena[ini]==' ' || cadena[ini]=='\t' || cadena[ini]=='\n' || cadena[ini]=='\r'))
  12.        ini--;
  13.  
  14.  



Los espacios son los del principio y el final solamente.


Título: Re: Quitar espacios de un cadena de caracteres
Publicado por: ivancea96 en 12 Enero 2017, 16:07 pm
Echando un vistazo rápido, en lal ínea 12 tienes un problema, y es que pusiste "ini--" (acabaría dando números negativos)

En cualquier caso, si aun no lo corregiste, pon un ejemplo de una entrada y un ejempo de la salida que te dá