Skip to content

Commit

Permalink
Reto mouredev#24 - C#
Browse files Browse the repository at this point in the history
Maldita "ñ"
deathwing696 committed Oct 12, 2023

Verified

This commit was signed with the committer’s verified signature.
ImgBotApp Imgbot
1 parent b374671 commit 6f138a9
Showing 1 changed file with 65 additions and 0 deletions.
65 changes: 65 additions & 0 deletions Retos/Reto #24 - CIFRADO CÉSAR [Fácil]/c#/deathwing696.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
/*
* Crea un programa que realize el cifrado César de un texto y lo imprima.
* También debe ser capaz de descifrarlo cuando así se lo indiquemos.
*
* Te recomiendo que busques información para conocer en profundidad cómo
* realizar el cifrado. Esto también forma parte del reto.
*/

using System;

namespace reto24
{
public class Reto24
{
static void Main(string[] args)
{
int desplazamiento = 3;
string texto = "Con diez cañones por banda,\r\nviento en popa a toda vela,\r\nno corta el mar, sino vuela\r\nun velero bergantin; ";
string texto_cifrado = "Frq glhc fdñrqhv sru edqgd, \r\nylhqwr hq srsd d wrgd yhod, \r\nqr fruwd ho pdu, vlqr yxhod \r\nxq yhohur ehujdqwlq;";

Console.WriteLine($"Texto:\r\n{texto}");
Console.WriteLine($"Texto cifrado:\r\n{Cifra_texto(desplazamiento, texto)}");
Console.WriteLine($"Texto descifrado:\r\n{Descifra_texto(desplazamiento, texto_cifrado)}");

Console.ReadKey();
}

private static string Cifra_texto(int desplazamiento, string texto)
{
string texto_cifrado = "";

foreach (var caracter in texto)
{
if (caracter == 'ñ')
{
texto_cifrado += caracter;
}
else if (char.IsLetter(caracter))
{
int codigoAscii;

if (char.IsUpper(caracter))
codigoAscii = ((int)caracter - (int)'A' + desplazamiento + 26) % 26 + (int)'A';
else
codigoAscii = ((int)caracter - (int)'a' + desplazamiento + 26) % 26 + (int)'a';

char letra_codificada = (char)codigoAscii;

texto_cifrado += letra_codificada;
}
else
{
texto_cifrado += caracter;
}
}

return texto_cifrado;
}

private static string Descifra_texto(int desplazamiento, string texto)
{
return Cifra_texto(-desplazamiento, texto);
}
}
}

0 comments on commit 6f138a9

Please sign in to comment.