- Регистрация
- 09.02.2020
- Сообщения
- 138
- Благодарностей
- 14
- Баллы
- 18
Добрый день, нужно сделать замену всех букв в предложение со смещение в + или - сторону
Например:
"Привет" со смешение +3 будет "Тулезх"
сделал все это на кубиках, но получилось громоздко и проблема получилась в том, что вставляешь предложение а итоговый вариант получается все буквы слитные без отступов и знаков препинания
подумал что на С# можно сделать все на много проще, и нашел на другом форуме вот такую тему ( https://www.cyberforum.ru/csharp-beginners/thread1072413.html )
в теме есть код
но он как я понял под вижуал студио, а можно его как-то под зенку подстроить ?
Например:
"Привет" со смешение +3 будет "Тулезх"
сделал все это на кубиках, но получилось громоздко и проблема получилась в том, что вставляешь предложение а итоговый вариант получается все буквы слитные без отступов и знаков препинания
подумал что на С# можно сделать все на много проще, и нашел на другом форуме вот такую тему ( https://www.cyberforum.ru/csharp-beginners/thread1072413.html )
в теме есть код
Код:
using System;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("hello world");
Console.WriteLine(caesar("hello world", 9));// сдвинем на 9 позиций вправо
Console.WriteLine(caesar(caesar("hello world", 9), -9));//расшифруем
Console.ReadLine();
}
public static string caesar(string s, int shift)
{
StringBuilder sb = new StringBuilder();
shift = (shift < 0) ? 26+shift : shift; //для отрицательных смещений
foreach (char c in s.ToLower()) //пройдемся по всем буквам
{
int t;
t = ( c == ' ') ? ' ' : (((c - 'a') + shift) % 26) + 'a'; // пробелы не будем трогать, работаем
//работаем с маленькими английскими буквами, всего их 26, а первая буква а
sb.Append((char)t); //добавим текущий символ к результату и возьмем следующий.
}
return sb.ToString(); //вернем сдвинутую строку
}
}
}