Transform Strings
Learn to transform strings.
We'll cover the following...
The std::string class is a contiguous container, much like a vector or an array. It supports the contiguous_iterator concept and all corresponding algorithms. The string class is a specialization of basic_string with a char type. This means that the elements of the container are of type char. Other specializations are available, but string is most common. Because it is fundamentally a contiguous container of char elements, string may be used with the transform() algorithm, or any other technique that uses the contiguous_iterator concept.
How to do it
There are several ways to do transformations, depending on the application. This recipe will explore a few of them.
We'll start with a few predicate functions. A predicate function takes a transformation element and returns a related element. For example, here is a simple predicate that returns an upper-case character:
char char_upper(const char& c) {return static_cast<char>(std::toupper(c));}