C++ Locale Library - tolower


It converts to lowercase and internally, this function simply calls the virtual protected member do_tolower, which does the above by default in both the generic template and the char specialization (ctype<char>).


Following is the declaration for std::ctype::tolower.


char_type tolower (char_type c) const;


char_type tolower (char_type c) const;


  • m − It is a bitmask of member type mask.

  • low,high − It is a pointer to the beginning and end of the sequence of characters.

Return Value

It returns the the lowercase equivalent of c (or c unchanged if no lowercase equivalent exists).


If an exception is thrown, there are no changes in the facet object, although characters in the range may have been affected.

Data races

The object, and the elements in the range [low,high), are accessed.


In below example explains about std::ctype::tolower.

#include <iostream>
#include <locale>

int main () {
   std::locale loc;

   char site[] = "Tutorialspoint.com ";

   std::cout << "The first letter of " << site << " as a lowercase is: ";
   std::cout << std::use_facet< std::ctype<char> >(loc).tolower ( *site );
   std::cout << '\n';

   std::cout << "The result of converting " << site << " to lowercase is: ";
   std::use_facet< std::ctype<char> >(loc).tolower ( site, site+sizeof(site) );
   std::cout << site << '\n';

   return 0;

Let us compile and run the above program, this will produce the following result −

The first letter of Tutorialspoint.com as a lowercase is: t
The result of converting Tutorialspoint.com to lowercase is: tutorialspoint.com