Quitar espacios de un cadena de caracteres

Iniciado por Dato Vagabundo, 11 Enero 2017, 21:28 PM

0 Miembros y 1 Visitante están viendo este tema.

Dato Vagabundo

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!!


void trim (char *cadena)
{
   int ini, fin;
   fin=strlen(cadena)-1;
   while(fin >0 && (cadena[fin]==' ' || cadena[fin]=='\t' || cadena[fin]=='\n' || cadena[fin]=='\r'))
       fin--;
   fin++;
   cadena[fin]='\0';

   ini=0;
   while(ini<fin && (cadena[ini]==' ' || cadena[ini]=='\t' || cadena[ini]=='\n' || cadena[ini]=='\r'))
       ini--;
   
       





Los espacios son los del principio y el final solamente.

ivancea96

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á