Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/06/2010, 19:40
margarito04
 
Fecha de Ingreso: enero-2008
Mensajes: 229
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Cifrado de Cesar ayuda

En primer lugar no deberias utilizar los goto, no son propios de la programacion estructurada.
En segundo si tu codigo corre y funciona perfecto, yo lo trate de correr en mi maquina y tuve algunos problemas que logre resolver.

Por otro lado para resolver tu duda es muy sencillo utiliza secuencias de escape en este caso
utilza \244 para la ñ y \255 para la Ñ.
te quedaria asi
char *alfabeto="abcdefghijklmn\244opqrstuvwxyzABCDEFGHI JKLMN\245OPQRSTUVWXYZ ";
como puedes observar despues de la n aparece \244 el cual al tiempo de mostrar en pantalla se mostrara como ñ, debes tomar en cuenta que si debugeas es posible que aparasca como otro caracter, pero en pantalla siempre apararecera como ñ.

En cuanto a tu codigo te sugiero la siguiente estrategia para encriptar

Código C++:
Ver original
  1. //Debes declara esto despues de los include's
  2. #define _FACTOR_ENCRIPTACION_ 3
  3. ...
  4. char* encripto(char *text)
  5. {
  6.     int i=0,j=0;
  7.     char text2[251];
  8.     int longAlfabeto = strlen(alfabeto);
  9.  
  10.     text2[250] = '\0';
  11.  
  12.     for(j=0; j<strlen(text); j++)
  13.     {
  14.         char *posCar = strchr(alfabeto, text[j]);
  15.         int pos = posCar-alfabeto+_FACTOR_ENCRIPTACION_;
  16.         if(pos >= longAlfabeto)
  17.             pos=pos-longAlfabeto;
  18.         text2[j]=alfabeto[pos];
  19.     }
  20.     text2[j]='\0';
  21.     return text2;
  22. }
  23. ...
  24.         }else if(opc==2){
  25.                                        char textoEncriptado[251];
  26.                     strcpy(textoEncriptado,encripto(texto));
  27.                     cout<<"El Texto Encriptado es: "<<textoEncriptado<<"\n";
  28.                     system("pause");system("cls");
  29.                 }else if(opc==3){
  30. ...
esto no kita los muchos detalles que tienes en cuanto al manejo de punteros. Ademas debes de tomar encuenta que la longitud de una cadena siempre será tamaño+1.
Te sugiero k lo revises bien tu codigo, y tomando en cuenta no solo tus errores, tambien tus warnings o advertencias.