diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/crypt/cryptclasscaesar.cpp | 32 | ||||
| -rw-r--r-- | src/crypt/cryptclasscaesar.h | 1 |
2 files changed, 28 insertions, 5 deletions
diff --git a/src/crypt/cryptclasscaesar.cpp b/src/crypt/cryptclasscaesar.cpp index d7c7827..d33b5d9 100644 --- a/src/crypt/cryptclasscaesar.cpp +++ b/src/crypt/cryptclasscaesar.cpp @@ -21,11 +21,7 @@ void CryptClassCaesar::encrypt() m_cryptText.clear(); - m_clearText = m_clearText.toUpper(); - m_clearText.replace(QByteArray("Ä"), QByteArray("AE")); - m_clearText.replace(QByteArray("Ö"), QByteArray("OE")); - m_clearText.replace(QByteArray("Ü"), QByteArray("UE")); - m_clearText.replace(QByteArray("ß"), QByteArray("SS")); + m_clearText = stripUmlauts(m_clearText); for (int i = 0; i < m_clearText.size(); i++) { @@ -40,6 +36,19 @@ void CryptClassCaesar::encrypt() void CryptClassCaesar::decrypt() { qDebug("CryptClassCaesar::decrypt"); + buildMap(); + + m_clearText.clear(); + + m_cryptText = stripUmlauts(m_cryptText); + + for (int i = 0; i < m_cryptText.size(); i++) + { + if (m_cryptText[i] >= (char) LOWERBOUND && m_cryptText[i] <= (char) UPPERBOUND) + { + m_clearText.append(substitutionsMap.key(m_cryptText[i])); + } + } } void CryptClassCaesar::buildMap() @@ -68,3 +77,16 @@ void CryptClassCaesar::buildMap() } } + +QByteArray CryptClassCaesar::stripUmlauts(QByteArray umlautText) +{ + umlautText.replace(QByteArray("ß"), QByteArray("SS")); + + umlautText = umlautText.toUpper(); + + umlautText.replace(QByteArray("Ä"), QByteArray("AE")); + umlautText.replace(QByteArray("Ö"), QByteArray("OE")); + umlautText.replace(QByteArray("Ü"), QByteArray("UE")); + + return umlautText; +} diff --git a/src/crypt/cryptclasscaesar.h b/src/crypt/cryptclasscaesar.h index 45f7588..899136b 100644 --- a/src/crypt/cryptclasscaesar.h +++ b/src/crypt/cryptclasscaesar.h @@ -25,6 +25,7 @@ private: const static int LOWERBOUND; const static int UPPERBOUND; + QByteArray stripUmlauts(QByteArray umlautText); }; #endif // CRYPTCLASSCAESAR_H |
