Hola quisiera saber que es lo que compara el segundo parámetro del for.
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;
}
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
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
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.
Estaría bien ponerlo así?
#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;
}
También podrías decir que esto es válido:
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.
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.
OK ya se me a quedado claro el código lo cambie para entenderlo bien.