Library: Localization
Function
Locale convenience function that converts a character to lower case
#include <locale> namespace std { template <class charT> charT tolower(charT c, const locale& loc); }
The tolower() function returns the parameter c after converting it to lower case. The conversion is made using the ctype facet from the locale parameter.
// // toupper.cpp // #include <iomanip> // for setw #include <iostream> // for cout, endl int main () { std::cout << std::oct; std::cout.fill ('0'); // compute tolower and toupper of printable ASCII characters for (int c = ' '; c != '~' + 1; ++c) std::cout << "std::toupper/lower ('\\" << std::setw (3) << c << "', std::locale ()) = '" << std::toupper (char (c), std::cout.getloc ()) << "' / " << std::tolower (char (c), std::cout.getloc ()) << "'\n"; return 0; } Program Output: std::toupper/lower ('\040', std::locale ()) = ' ' / ' std::toupper/lower ('\041', std::locale ()) = '!' / !' std::toupper/lower ('\042', std::locale ()) = '"' / "' std::toupper/lower ('\043', std::locale ()) = '#' / #' std::toupper/lower ('\044', std::locale ()) = '$' / $' std::toupper/lower ('\045', std::locale ()) = '%' / %' std::toupper/lower ('\046', std::locale ()) = '&' / &' std::toupper/lower ('\047', std::locale ()) = ''' / '' std::toupper/lower ('\050', std::locale ()) = '(' / (' std::toupper/lower ('\051', std::locale ()) = ')' / )' std::toupper/lower ('\052', std::locale ()) = '*' / *' std::toupper/lower ('\053', std::locale ()) = '+' / +' std::toupper/lower ('\054', std::locale ()) = ',' / ,' std::toupper/lower ('\055', std::locale ()) = '-' / -' std::toupper/lower ('\056', std::locale ()) = '.' / .' std::toupper/lower ('\057', std::locale ()) = '/' / /' std::toupper/lower ('\060', std::locale ()) = '0' / 0' std::toupper/lower ('\061', std::locale ()) = '1' / 1' std::toupper/lower ('\062', std::locale ()) = '2' / 2' std::toupper/lower ('\063', std::locale ()) = '3' / 3' std::toupper/lower ('\064', std::locale ()) = '4' / 4' std::toupper/lower ('\065', std::locale ()) = '5' / 5' std::toupper/lower ('\066', std::locale ()) = '6' / 6' std::toupper/lower ('\067', std::locale ()) = '7' / 7' std::toupper/lower ('\070', std::locale ()) = '8' / 8' std::toupper/lower ('\071', std::locale ()) = '9' / 9' std::toupper/lower ('\072', std::locale ()) = ':' / :' std::toupper/lower ('\073', std::locale ()) = ';' / ;' std::toupper/lower ('\074', std::locale ()) = '<' / <' std::toupper/lower ('\075', std::locale ()) = '=' / =' std::toupper/lower ('\076', std::locale ()) = '>' / >' std::toupper/lower ('\077', std::locale ()) = '?' / ?' std::toupper/lower ('\100', std::locale ()) = '@' / @' std::toupper/lower ('\101', std::locale ()) = 'A' / a' std::toupper/lower ('\102', std::locale ()) = 'B' / b' std::toupper/lower ('\103', std::locale ()) = 'C' / c' std::toupper/lower ('\104', std::locale ()) = 'D' / d' std::toupper/lower ('\105', std::locale ()) = 'E' / e' std::toupper/lower ('\106', std::locale ()) = 'F' / f' std::toupper/lower ('\107', std::locale ()) = 'G' / g' std::toupper/lower ('\110', std::locale ()) = 'H' / h' std::toupper/lower ('\111', std::locale ()) = 'I' / i' std::toupper/lower ('\112', std::locale ()) = 'J' / j' std::toupper/lower ('\113', std::locale ()) = 'K' / k' std::toupper/lower ('\114', std::locale ()) = 'L' / l' std::toupper/lower ('\115', std::locale ()) = 'M' / m' std::toupper/lower ('\116', std::locale ()) = 'N' / n' std::toupper/lower ('\117', std::locale ()) = 'O' / o' std::toupper/lower ('\120', std::locale ()) = 'P' / p' std::toupper/lower ('\121', std::locale ()) = 'Q' / q' std::toupper/lower ('\122', std::locale ()) = 'R' / r' std::toupper/lower ('\123', std::locale ()) = 'S' / s' std::toupper/lower ('\124', std::locale ()) = 'T' / t' std::toupper/lower ('\125', std::locale ()) = 'U' / u' std::toupper/lower ('\126', std::locale ()) = 'V' / v' std::toupper/lower ('\127', std::locale ()) = 'W' / w' std::toupper/lower ('\130', std::locale ()) = 'X' / x' std::toupper/lower ('\131', std::locale ()) = 'Y' / y' std::toupper/lower ('\132', std::locale ()) = 'Z' / z' std::toupper/lower ('\133', std::locale ()) = '[' / [' std::toupper/lower ('\134', std::locale ()) = '\' / \' std::toupper/lower ('\135', std::locale ()) = ']' / ]' std::toupper/lower ('\136', std::locale ()) = '^' / ^' std::toupper/lower ('\137', std::locale ()) = '_' / _' std::toupper/lower ('\140', std::locale ()) = '`' / `' std::toupper/lower ('\141', std::locale ()) = 'A' / a' std::toupper/lower ('\142', std::locale ()) = 'B' / b' std::toupper/lower ('\143', std::locale ()) = 'C' / c' std::toupper/lower ('\144', std::locale ()) = 'D' / d' std::toupper/lower ('\145', std::locale ()) = 'E' / e' std::toupper/lower ('\146', std::locale ()) = 'F' / f' std::toupper/lower ('\147', std::locale ()) = 'G' / g' std::toupper/lower ('\150', std::locale ()) = 'H' / h' std::toupper/lower ('\151', std::locale ()) = 'I' / i' std::toupper/lower ('\152', std::locale ()) = 'J' / j' std::toupper/lower ('\153', std::locale ()) = 'K' / k' std::toupper/lower ('\154', std::locale ()) = 'L' / l' std::toupper/lower ('\155', std::locale ()) = 'M' / m' std::toupper/lower ('\156', std::locale ()) = 'N' / n' std::toupper/lower ('\157', std::locale ()) = 'O' / o' std::toupper/lower ('\160', std::locale ()) = 'P' / p' std::toupper/lower ('\161', std::locale ()) = 'Q' / q' std::toupper/lower ('\162', std::locale ()) = 'R' / r' std::toupper/lower ('\163', std::locale ()) = 'S' / s' std::toupper/lower ('\164', std::locale ()) = 'T' / t' std::toupper/lower ('\165', std::locale ()) = 'U' / u' std::toupper/lower ('\166', std::locale ()) = 'V' / v' std::toupper/lower ('\167', std::locale ()) = 'W' / w' std::toupper/lower ('\170', std::locale ()) = 'X' / x' std::toupper/lower ('\171', std::locale ()) = 'Y' / y' std::toupper/lower ('\172', std::locale ()) = 'Z' / z' std::toupper/lower ('\173', std::locale ()) = '{' / {' std::toupper/lower ('\174', std::locale ()) = '|' / |' std::toupper/lower ('\175', std::locale ()) = '}' / }' std::toupper/lower ('\176', std::locale ()) = '~' / ~'
ISO/IEC 14882:1998 -- International Standard for Information Systems -- Programming Language C++, Section 22.1.3.2