#include #include "casehandler.h" CaseHandler::CaseHandler() { } CaseHandler::~CaseHandler() { } void CaseHandler::adjustCase(string &buffer, string &comparison) { string::iterator it; int countBuffer; bool initialCapital; countBuffer = 0; initialCapital = false; // preserve all caps for (it = buffer.begin(); it != buffer.end(); ++it) if (isalpha(*it) && isupper(*it)) ++countBuffer; if (countBuffer > 2) { for (it = buffer.begin(); it != buffer.end(); ++it) if (isalpha(*it)) *it = toupper(*it); return; } // preserve initial capital it = comparison.begin(); if (isalpha(*it) && isupper(*it)) initialCapital = true; for (++it; it != comparison.end(); ++it) if (isalpha(*it) && isupper(*it)) return; if (initialCapital) { it = buffer.begin(); if (isalpha(*it)) *it = toupper(*it); for (++it; it != buffer.end(); ++it) if (isalpha(*it) && isupper(*it)) *it = tolower(*it); } } string CaseHandler::lowerCase(string &s) { string::iterator it; string localString(s); for ( it = localString.begin(); it != localString.end(); it++) { if (*it < 0) continue; *it = tolower(*it); } return localString; }