Test Foro de elhacker.net SMF 2.1

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
   
for (i=0;i<strlen (c);i++)
  {
       if (c[i]==' ')
       {
       
          for ( j=i+1; c[j]!='\0';j++)
          {
              c[ j-1]=c[j];
             
          }

          c[j-1]='\0';
     }


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