// @topic T53325 12/11/2012 -- STL containers and iterators
// @brief std::string, string iterator, toupper(), tolower(), auto
#include <string>
#include <iostream>
int main()
{
std::string str = "Hello World!";
int idx = 0;
for ( ; idx < str.length(); ++idx ) {
str[ idx ] = toupper( str[ idx ] );
std::cout << str[ idx ] << ' ';
}
auto x = 12345;
//std::string::iterator it_start = str.begin() + 1;
//std::string::iterator it_end = str.end() - 2;
auto it_start = str.begin() + 1;
auto it_end = str.end() - 2;
int dist = it_end - it_start;
std::cout << "the distance is " << dist;
std::cout << '\n';
while( it_start < it_end) {
*it_start = tolower( *it_start );
std::cout << *it_start << ' ';
++it_start;
}
std::cout << '\n';
}