C++ 本地化库 - narrow



描述

它用于窄字符,内部,此函数简单地调用虚拟保护成员 do_narrow,它在泛型模板和 char 特化 (ctype<char>) 中默认执行上述操作。

声明

以下是 std::ctype::narrow 的声明。

C++98

	
char narrow (char_type c, char dfault) const;

C++11

char narrow (char_type c, char dfault) const;

参数

  • c − 它是 char 类型。

  • low,high − 它是指向字符序列的开始和结束的指针。

  • to − 它是指向构面字符类型元素范围的指针。

  • dfault − 它是默认字符值。

返回值

它返回 c 的转换结果。

异常

如果抛出异常,构面对象不会发生更改,尽管范围内的字符可能已被影响。

数据竞争

访问对象和范围 [low,high) 中的元素。

示例

下面的示例解释了 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;
}

让我们编译并运行上面的程序,这将产生以下结果:

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
广告