Can I perform a ::toupper transformation on the same string that is the input?
i.e.:
std::transform(s.begin(), s.end(), s.begin(), ::toupper);
or do I need a different target?
Yes. That's legal, and perfectly idiomatic. It's a very common way to do it.
std::transform on cppreference: en.cppreference.com/w/cpp/algorithm/transform