C++ string anagrams check

Description

C++ string anagrams check

#include <iostream>
#include <cctype>
#include <string>

using std::string;

int main() {//  ww w .  j a  v  a 2s  . c o m
  string word1 {"level"};
  string word2 {"level"};

  if (word1.length() != word2.length()) {
    std::cout << word1 << " and " << word2 << " are different lengths so they can't be anagrams!" << std::endl;
    return 0;
  }

  string word2_copy {word2};   // Copy word2 - because we will delete characters
  for (int i {}; i < word1.length(); ++i){
    // Loop over all the characters in word2
    for (int j {}; j < word2_copy.length(); j++)
      if (std::tolower(word2_copy[j]) == std::tolower(word1[i])) {
        word2_copy.erase(j, 1);   // Character found so erase from word2
        break;
      }
  }

  std::cout << word1 << " and " << word2 << " are "
    << (word2_copy.length() ? "not" : "")
    << " anagrams of one another."
    << std::endl;
}



PreviousNext

Related