estab haciendo un ejercicio y no me ha salida asi que he mirado la solucion

me gustaria saber si lo he entendido bien:
Código:
aqui lee las cadenas introdcidas por el usuario.La funcion gets(C1), haria la mismo que scanf("%s",&C1[i]);?.#include <stdio.h>
#define MAX 20
void main()
{
char C1[MAX],C2[MAX];
int i;
printf( "\nIntroduzca la primera palabra y pulse enter:\n" );
gets( C1 );
printf( "\nIntroduzca la segunda palabra y pulse enter:\n" );
gets( C2 );
i=0;
while ((C1[i]==C2[i]) && (C1[i]!='\0') && (C2[i]!='\0'))
i++;
if((C1[i]=='\0') && (C2[i]=='\0'))
printf( "Son iguales\n" );
else
printf( "Son diferentes" );
}
Código:
aqui compara las letras de cada cadena empezando por la posicion 0 hasta la final incrimentando la i cada vez,hasta que llega a la ultima posocion de la cadena que sera 0.printf( "\nIntroduzca la primera palabra y pulse enter:\n" ); gets( C1 ); printf( "\nIntroduzca la segunda palabra y pulse enter:\n" ); gets( C2 ); i=0;
Código:
y finalmente aqui mira que las cadenas acaben en la misma posicion de i.Si es asi son iguales y sino diferente s no? No se deberia hacer con i y j, y no solo con i ya que no son el mismo vectorwhile ((C1[i]==C2[i]) && (C1[i]!='\0') && (C2[i]!='\0'))
i++;
Código:
if((C1[i]=='\0') && (C2[i]=='\0'))
printf( "Son iguales\n" );
else
printf( "Son diferentes" );
}

