Скрипты: VigenerCipher

 

VigenerCipher:

В скрипте представлена функция для кодирования и декодирования по методу шифра Виженера с учетом регистра, спец символов и пробелов.

Автор: Pavel Shutovskiy

 

Это что за описание скрипта???


 
for (int i = 0; i < StringLen(message); i++) {
  for (int c = 0; c < size; c++) {
    string ch = StringSubstr(message, i, 1);
    if (ExtSumbol[c] == ch) {
      clean_message += ch;
    }

Так быстрее.

const int Size = StringLen(message);

if (StringReserve(clean_message, Size))
  for (int i = 0; i < Size; i++)
  {
    const ushort Ch = message[i];
    
    if ((Ch >= ' ') && (Ch <= '~')) // https://www.asciitable.com/
      clean_message += ShortToString(Ch);
  }


Лучше так.

string Clean( const string &Str )
{
  ushort Array[];
  int Amount = 0;
  
  const int Size = ArrayResize(Array, StringLen(Str));
  
  for (int i = 0; i < Size; i++)
  {
    const ushort Ch = Str[i];
    
    if ((Ch >= ' ') && (Ch <= '~')) // https://www.asciitable.com/
      Array[Amount++] = Ch;
  }
  
  ArrayResize(Array, Amount);
  
  return(ShortArrayToString(Array));
}

string clean_message = Clean(message);
 
fxsaber #:

Так быстрее.


Лучше так.

Спасибо, отличный вариант.