...
[Meyers 01] Item 43: Prefer algorithm calls to hand-written loops.
[ISO/IEC 14882-2003] 21.3 Class template basic_string.
...
STR37-CPP. Arguments to character handling functions must be representable as an unsigned char 07. Characters and Strings (STR) STR39-CPP. Range check element access