#include <iostream>
#include <algorithm>
std::string toLower(std::string str) {
transform(str.begin(), str.end(), str.begin(), ::tolower);
return str;
}
std::string removePunctuationAndLowercaseString(const std::string& str) {
std::string tmp(str);
tmp.erase(std::remove_if(tmp.begin(), tmp.end(), ispunct), tmp.end());
return toLower(tmp);
}
int main() {
std::string str = "CPP is, a &general (purpose) @PROGRAMMING <language>.";
str = removePunctuationAndLowercaseString(str);
std::cout << str;
}
/*
run:
cpp is a general purpose programming language
*/