hola que tal soy nueva dentro de este foro, espero me puedan ayudar, mi problema es que al compar las cadenas de clave y llave no entra en el if aunque las escriba bien, ojala me apoyen a resolverlo!! gracias
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
int main()
{
char texto[80]; /*Vector para guardar la frase a encriptar*/
char temp[80]; /*Vector donde se guarda la frase una vez revisada*/
char clave[80]; /*Vector donde se guarda la llave*/
char llave[80];
char codificado=0; /*Caracter codificado*/
int tlen; /*largo del texto*/
int i; /*contador 1*/
int j=0; /*contador 2*/
char* point1;
char* point2;
char a,b;
int iguales,fin;
printf("\n\nGenerando semilla...");
srand(time(NULL)); /*Generador de Semilla de Números Aleatorios*/
printf("...[ OK ]");
printf("\nEscriba una frase a codificar:\n");
gets(texto);
printf("\n\nRevisando caracteres validos...\n");
tlen = strlen(texto);
/*Revisa cada caracter para solo codificar caracteres Alfabeticos*/
//for(i=0; i<tlen; i++){
//if(texto[i] == '\0') /*Fin de la cadena*/
//break;
//if(texto[i] > 'A' && texto[i] < 'Z') /*mayusculas*/
//temp[j++] = texto[i];
//else if(texto[i] > 'a' && texto[i] < 'z') /*minusculas*/
//temp[j++] = (texto[i] -'a') + 'A';
/*se que puedo usar una macro, pero asi me aseguro que haga lo que realmente quiero*/
//}
//printf("\n\nTexto en claro: %s", temp);
//tlen = strlen(temp);/*Imprime en pantalla la cadena con que se va a trabajar*/
printf("\nGenerando llave aleatoria: \n");
/*Genera la llave aleatoria. El modulo nos permite tener solo numeros entre 0 y 26*/
for(i=0; i<tlen; i++){
clave[i] = (rand() % 26) + 'A';
putchar(clave[i]);
}
/*pone un fin-de-cadena*/
clave[i] = '\0';
printf("\n\nEncriptando mensaje:\n\n");
/*Se encripta por el algoritmo polialfabetico*/
for(i = 0; i <tlen; i++){
codificado = (texto[i] - 'A') + (clave[i] - 'A');
codificado %= 26;
codificado += 'A';
printf("%c", codificado);
}
printf("\n\nclave: %s",clave);
printf("\n\nteclee la llave: ");
gets(llave);
printf("\n\nllave: %s",llave);
point1=clave;
point2=llave;
iguales=1;
fin=0;
do{
a=*point1;
b=*point2;
if (a==b)
{
iguales=1;
}
else iguales=0;
point1++;
point2++;
a=*point1;
b=*point2;
if (a=='\0')
fin=1;
if (b=='\0')
fin=1;
}while ((iguales==1)&&(fin==0));
if(iguales==1){
printf("las cadenas son iguales\n");
for(i=0;i<tlen; i++){
codificado -='A';
codificado = (texto[i] + 'A') - (clave[i] + 'A');
printf("%c",codificado);
}//for
}//if
//else{
//exit(0);}
system("PAUSE");
return 0;
}