Неправильно определяет символ

HELLO WORLD!!!21312sadahfa sdgfasg(следующий символ)dfuk qehljflahggf fj ahfjkashfsgfj agsjfas

Шифруется вот такой текст, с данной гаммой

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

но получается вот такой текст

HELLO WORLD!!!21312sadahfa sdgfasg(следующий символ)cfuk qehljflahggf fj ahfjkashfsgfj agsjfas,

ошибка в одном символе, посмотрев код в двоичной системе при XoR d ^ i = 00001111, то есть вообще не \n или \r но там всё равно есть \r\n, что делать?

vector<size_t> searchEnter(string& key, string& newGamma){
  vector<size_t> newIndexEnter;
  bool addedElement = false;
  size_t ciphertextSize = ciphertext.size();
  for(size_t i = 0; i < ciphertextSize; ++i){
  if(ciphertext[i] == '\n' || ciphertext[i] == '\r')
    {
    char target = '\n';
    int b = 0;
    int a = 0;
    while(b==0)
    {
      char candidate = static_cast<char>(a);
      if ((candidate ^ key[i]) == target) {
        if (ciphertext[i] == '\r' && ciphertext[i+1] == '\n')
        {
          ciphertext[i] = candidate;
          ciphertext.erase(i+1,1);
          b=1;
          newIndexEnter.push_back(i);
          addedElement = true;
          ciphertextSize--;
          key = MainDecipher(ciphertext, newGamma);
        }
        else
        {
          ciphertext[i] = candidate;
          b=1;
          newIndexEnter.push_back(i);
          addedElement = true;
        }
      }
      a++;
    }
    }
  }
  if (!addedElement) {
  newIndexEnter.push_back(-1);
  }
  return newIndexEnter;

}

Ответы (0 шт):