Программа на C#
На вход программе подаётся английский текст, заканчивающийся точкой (символ «точка» во входных данных единственный). Текст зашифровать следующим образом: сначала определяется количество букв в самом длинном слове, обозначив полученное число К (словом называется непрерывная последовательность английских букв, слова друг от друга отделяются пробелами и запятыми, длина слова не прtвышает 20 символов). Затем проводится замена каждой анuлийской буквы на букву, следующую за ней К-ю по счету в алфавите (алфавит считается циклическим, то есть после буквой Z стоит буква А), оста-вив другие символы неизменными. Строчные буквы при этом остались строчными, а прописные - прописными. Требуется написать программу, которая будет выводить на экран зашифрованный текст и число К.
Поправил момент с запятыми:
static int Encrypt(ref string s)
{
const string Alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
s = s.Substring(0, s.IndexOf('.'));
int k = s.Split(new char[] { ' ', ',' }).Select(x => x.Length).Max();
string EncryptedStr = string.Empty;
foreach (char c in s)
{
int CharPos = Alphabet.IndexOf(c.ToString().ToUpper()[0]);
if (CharPos >= 0)
{
char EncryptedChar = Alphabet[(CharPos + k) % Alphabet.Length];
if (c.ToString().ToUpper() != c.ToString())
EncryptedChar = EncryptedChar.ToString().ToLower()[0];
EncryptedStr += EncryptedChar;
}
else
EncryptedStr += c;
}
s = EncryptedStr + '.';
return k;
}
static void Main(string[] args)
{
string s = Console.ReadLine();
int k = Encrypt(ref s);
Console.WriteLine(k);
Console.WriteLine(s);
Console.ReadLine();
}