Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: ALONSOQ en 5 Agosto 2012, 09:13 am



Título: ¿ como se lee esto?
Publicado por: ALONSOQ en 5 Agosto 2012, 09:13 am
Código
  1.  
  2. for (i=0;i<strlen (c);i++)
  3.   {
  4.        if (c[i]==' ')
  5.        {
  6.  
  7.           for ( j=i+1; c[j]!='\0';j++)
  8.           {
  9.               c[ j-1]=c[j];
  10.  
  11.           }
  12.  
  13.           c[j-1]='\0';
  14.      }

Este codigo ¿ que significaría exactamente?
Para i=0 hasta el tamaño de la cadena, i, avanza
si hay un espacio
para j =i+1 hasta el final de la cadena j.....¿ Que quiere decir? ( se lo que hace que es eliminar espacios; pero como se recita)

muchas gracias


Título: Re: ¿ como se lee esto?
Publicado por: durasno en 5 Agosto 2012, 09:44 am
Hola! no entiendo tu duda, ¿no entendes el codigo? ¿¿o no entendes que es c[j]!='\0'??

Saludos


Título: Re: ¿ como se lee esto?
Publicado por: ALONSOQ en 5 Agosto 2012, 10:54 am
Como se leeria la condición de dentro del bucle
si i igual a espacio, entonces .... (Es decir cual es el razonamiento)

gracias


Título: Re: ¿ como se lee esto?
Publicado por: p4nd4criss en 5 Agosto 2012, 16:28 pm
para cada carácter de la cadena espesando desde cero
      se compare con un espacio( if (c==' ') )
             cuando se encuentra un espacio se copia cada carácter sigiente un espacio atrás( c[ j-1]=c[j]; )
             hasta encontrar un carácter de devuelva NULL( c[j]!='\0' ).
             el ultimo carácter de la cadena queda duplicado así k se lo reemplaza con NULL ( c[j-1]='\0'; )
      se continua buscando espacios "  "


Título: Re: ¿ como se lee esto?
Publicado por: ALONSOQ en 5 Agosto 2012, 17:14 pm
Muchas gracias