Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <locale> // std::locale, std::isalpha
- /********************************************************************************/
- using namespace std;
- /********************************************************************************/
- wchar_t alfabetoCircular(wchar_t letra,int desplazamiento){//Desplaza una letra
- wstring abc=L"ABCDEFGHIJKLMNÑOPQRSTUVWXYZ"; //0 a 27
- int pos= abc.find(letra);//Busca posicion letra
- //Analisis desplazamiento
- if ((pos+desplazamiento) >= (int) abc.size ()){//Mayor que Z
- pos = (pos+desplazamiento)- (abc.size() );
- return abc[pos];
- }
- if ((pos+desplazamiento) <0){//Menor que A
- pos = (abc.size()) + (pos+desplazamiento );
- return abc[pos];
- }
- return abc[pos+desplazamiento];//Normal
- };
- /********************************************************************************/
- wstring cifrado(wstring& texto,int desplazamiento){//Codificador decodificador
- for (auto& letra:texto){
- if (isalpha (letra)) {
- letra=toupper(letra);//Mayusculas
- letra=alfabetoCircular(letra,desplazamiento);//Codificacion una letra
- }
- }
- return texto;
- }
- /********************************************************************************/
- int main (){
- //wstring texto=L"ABCDEFGHIJKLMNÑOPQRSTUVXYZ"; //Test abecedario ESP
- wstring texto=L"EL DOMINGO aTACAMOS12XYZ";
- std::wcout.sync_with_stdio(false);//Formato para abecedario ES
- std::wcout.imbue(std::locale("es_ES.utf8"));
- wcout <<texto<<endl;// Texto ORIGINAL
- wcout << cifrado(texto,3) <<endl;//Codificado en +3
- wcout << cifrado(texto,-3) <<endl;//Recodificado con -3
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement