buenas soy nuevo en el foro y este es mi primer post
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:
#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);
}
muchas gracias de ante mano, saludos