view enigma/enigma_utils.cpp @ 13:b9d124a15926

To improve cache performance, the enigma machine rotors are now stored together with the reflector in a vector.
author Brian Neal <bgneal@gmail.com>
date Mon, 02 Jul 2012 19:14:36 -0500
parents 424111a36ed7
children
line wrap: on
line source
// Copyright (C) 2012 by Brian Neal.
// This file is part of Cpp-Enigma, the Enigma Machine simulation.
// Cpp-Enigma is released under the MIT License (see License.txt).
//
// enigma_utils.cpp - Implementation file for enigma_utils.h.

#include "enigma_utils.h"

std::string enigma::remove_spaces(const std::string& s)
{
   std::string result;
   result.reserve(s.size());

   for (const auto& c : s)
   {
      if (c != ' ')
      {
         result += c;
      }
   }
   return result;
}

////////////////////////////////////////////////////////////////////////////////

std::string enigma::preprocess_ciphertext(const std::string& s)
{
   std::string result;
   result.reserve(s.size());

   for (const auto& c : s)
   {
      if (c != ' ')
      {
         result += c - 'A';
      }
   }
   return result;
}