tengo este codigo de cifrado de cesar pero tengo un problema, no se como hace rpara que me valide la letra ñ cuando la escribo si me encripta pero si escribo una L al mandarle a mostrar el texto cifrado me muestra un simbolo de mas y menos, quisiera saber como pueod hacer para que en vez de mostrarme los simbolos me muestre la ñ
Código:
muchas gracias de ante mano, saludos #include <cstdlib> #include <iostream> using namespace std; char *alfabeto="abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ"; char *encriptado="defghijklmnñopqrstuvwxyzabcDEFGHIJKLMNÑOPQRSTUVWXYZABC"; char *novalido="~!@#$%^&*()_+=-}{|:;<>,./1234567890áéíóú¡²³€¼½¾×?°!?¡¿¨´"; int coninvali=0; void menu(int &opc) { menu: cout<<"Bienvenido al encriptador\nPresione 1 para escribir texto\nPresione 2 para encriptar texto luego de haberlo escrito\nPresione 3 Desencriptar texto luego de haberlo escrito\nPresione 4 para salir\nSu Opcion:"; cin>>opc; cin.seekg(0, ios::end); cin.clear(); } char* encripto(char *text) { int i=0,j=0; char text2[250]; strncpy(text2, text, 250); text2[250] = '\0'; for(j=0;j<strlen(text2);j++) { for(i=0;i<strlen(alfabeto);i++) { if(*(text2+j)==*(alfabeto+i)) { *(text+j)=*(encriptado+i); } } } return text; } char* invalido(char *text) { int i=0,j=0; char text2[250]; strncpy(text2, text, 250); text2[250] = '\0'; for(j=0;j<strlen(text2);j++) { for(i=0;i<strlen(novalido);i++) { if(*(text2+j)==*(novalido+i)) {coninvali++;} } } } char* desencripto(char *text) { int i=0,j=0; char text2[250]; strncpy(text2, text, 250); text2[250] = '\0'; for(j=0;j<strlen(text2);j++) { for(i=0;i<strlen(alfabeto);i++) { if((*(text2+j))==*(encriptado+i)) { *(text+j)=*(alfabeto+i); } } } return text; } int main () { int opc=0; do{ system("cls"); char texto[251]; char *texto2; menu(opc); topfalso: system("cls"); if(opc==1){cout<<"Introduzca Texto a Encriptar\n"; cin.getline(texto,251); texto2=invalido(texto); if(coninvali>0){cout<<"Texto con caracteres no admitidos\n"; system("PAUSE"); coninvali=0; goto topfalso;}else cout<<"El Texto introducido es: "<<texto<<"\n\n"; system("pause");system("cls"); goto topreal; }else if(opc==2){ cout<<"Primero escriba texto\n"; system("pause");system("cls"); }else if(opc==3){ cout<<"Primero escriba texto\n"; system("PAUSE");system("cls"); } if(opc<1||opc>4){cout<<"Opcion Invalida\n"; opc=0; cin.seekg(0, ios::end); cin.clear(); system("pause");} }while(opc!=4); return 0; do{ opc=0; topreal: system("cls"); char texto[251]; char *texto2; menu(opc); system("cls"); if(opc==1){cout<<"Introduzca Texto a Encriptar\n"; cin.getline(texto,251); texto2=invalido(texto); if(coninvali>0){cout<<"Texto con caracteres no admitidos\n"; system("PAUSE"); coninvali=0; goto topreal;}else cout<<"El Texto introducido es: "<<texto<<"\n\n"; system("pause");system("cls"); }else if(opc==2){ texto2=encripto(texto); cout<<"El Texto Encriptado es: "<<texto2<<"\n"; system("pause");system("cls"); }else if(opc==3){ texto2=desencripto(texto); cout<<"El Texto Desencriptado es: "<<texto2<<"\n"; system("PAUSE");system("cls"); } if(opc<1||opc>4){cout<<"Opcion Invalida\n"; opc=0; cin.seekg(0, ios::end); cin.clear(); system("pause");} } while(opc!=4); }