Pequeña duda de este parámetro del for.

Iniciado por anonimo12121, 30 Marzo 2011, 11:54 AM

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

anonimo12121

Hola quisiera saber que es lo que compara el segundo parámetro del for.

Código (cpp) [Seleccionar]
int main(int argc,char *argv[]){
    char a[100];
    gets(a);
    for(int i=0;a[i];i++){
        if(a[i]==' ')a[i]='_';
    }
    puts(a);
    cin.get();
    return 0;
}
Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746

d00ze13

#1
pues creo que es que te hace el bucle mientras a contenga i
y como cuando el bucle llega al final de la cadena introducida hace que a contenga una barra baja con lo cual se sale del bucle porque a ya no va a contener un numero sino que tendra una baarra baja
nose si me explique bien xd

d00ze13

por ejemplo si introduces la cadena hola, va a hacer esto
i=0;i[0];i++  // h
i=0;i[1];i++  // o
i=0;i[2];i++  // l
i=0;i[3];i++  // a

i=0;i[_];i++  // la barra baja y se sale del bucle ya que no cumple la condicion de que sea un entero

Saberuneko

El segundo parametro es la condicion de repetición. Basicamente, tal como aparece ahora, recorre el vector "a", siendo "i" la posición actual del mismo, tal como está, solo pararía con valor "0". (ya que C no tiene variables lógicas (booleanas), eso significa que el bucle parará cuando se encuentre con un "0" en el vector). <<Para C, todo es true, excepto el "0" que es considerado false>>

Dentro del bucle, lo que se hace, es sustituir los espacios en blanco " " por "_" según se encuentran.

anonimo12121

Estaría bien ponerlo así?
Código (cpp) [Seleccionar]
#include <iostream>
#include <sstream>
using namespace std;
int main(int argc,char *argv[]){
    char a[100];
    gets(a);//Leer lo que escribes y lo almacena en la variable
    for(int i=0;a[i]!=0;i++){
        if(a[i]==' ')a[i]='_';
    }
    puts(a);//muestra el contenido de la variable en la pantalla
    cin.get();
    return 0;
}
Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746

D4RIO

También podrías decir que esto es válido:

Código (cpp) [Seleccionar]
int i=0;

if (0!=(i==0))


Lo que no significa que sea legible o simple, dejalo como estaba y recuerda que esta evaluando si ese caracter existe, o hay un cero en su lugar.
OpenBSDFreeBSD

Saberuneko

Si, tal como estaba, hacía exactamente lo mismo. Ya que las condiciones fijadas en los bucles siempre siguen las reglas cierto falso, por tanto, siempre que no sea "0" o ningún carácter, va a ser cierto, y continuar con el bucle.

De todos modos, sigue siendo correcto ponerlo de esa otra forma.

anonimo12121

OK ya se me a quedado claro el código lo cambie para entenderlo bien.
Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746