It is used in narrow characters and internally, this function simply calls the virtual protected member do_narrow, which does the above by default in both the generic template and the char specialization (ctype<char>).
DeclarationFollowing is the declaration for std::ctype::narrow.
C++98char narrow (char_type c, char dfault) const;C++11
char narrow (char_type c, char dfault) const;Parameters
c − It is a char type.
low,high − It is a pointer to the beginning and end of the sequence of characters.
to − It is a pointer to a range of elements of the facet's character type.
dfault − It is a default character value.
It returns the transformation of c.
ExceptionsIf an exception is thrown, there are no changes in the facet object, although characters in the range may have been affected.
Data racesThe object, and the elements in the range [low,high), are accessed.
ExampleIn below example explains about std::ctype::narrow.
#include <iostream> #include <locale> #include <string> int main () { std::locale loc; std::wstring yourname; std::cout << "Please enter your a word: "; std::getline (std::wcin,yourname); std::wstring::size_type length = yourname.length(); std::cout << "The first (narrow) character in your word is: "; std::cout << std::use_facet< std::ctype<wchar_t> >(loc).narrow ( yourname[0], '?' ); std::cout << '\n'; std::cout << "The narrow transformation of your word is: "; char * pc = new char [length+1]; std::use_facet< std::ctype<wchar_t> >(loc).narrow ( yourname.c_str(), yourname.c_str()+length+1, '?', pc); std::cout << pc << '\n'; return 0; }
Let us compile and run the above program, this will produce the following result −
Please enter your a word: sai The first (narrow) character in your word is: s The narrow transformation of your word is: sai
locale.htm
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4