ctype::narrow

将区域设置中使用的类型 CharType 字符转换为类型 char 对应的字符在本机字符集。

char narrow(
    CharType ch, 
    char default = '\0'
) const;
const CharType* narrow(
    const CharType* first, 
    const CharType* last,
    char default, 
    char* dest
) const;

参数

  • ch
    区域设置中使用的类型 Chartype 字符被转换。

  • default
    成员函数将分配的默认值设置为没有类型 char重复字符类型 CharType 的字符。

  • first
    对于第一个字符的指针将转换的字符范围内。

  • last
    指向字符的指针在将转换的字符范围内的最后一个字符之后。

  • dest
    对类型 char 第一个字符的一个const指针在存储字符的翻译范围的目标的大小。

返回值

第一个成员函数返回对应于类型 CharTypedefault 参数字符类型 char 的本机字符,如果没有重复未定义。

第二个成员函数返回指向从类型 CharType字符转换的本机字符的目标范围。

备注

第一个成员函数返回 do_narrow(ch,default)。 第二个成员函数返回 do_narrow (first、last、default,dest)。 只有基本源字符确保具有唯一原与 CharTypenarrow下。 这些基本的源字符,下面的固定的备用: narrow ( 扩大 (c), 0) == c。

示例

// ctype_narrow.cpp
// compile with: /EHsc /W3
#include <locale>
#include <iostream>
using namespace std;

int main( )
{
   locale loc1 ( "english" );
   wchar_t *str1 = L"\x0392fhello everyone";
   char str2 [16];
   bool result1 = (use_facet<ctype<wchar_t> > ( loc1 ).narrow
      ( str1, str1 + wcslen(str1), 'X', &str2[0] ) != 0);  // C4996
   str2[wcslen(str1)] = '\0';
   wcout << str1 << endl;
   cout << &str2[0] << endl;
}
  

要求

标头: <locale>

命名空间: std

请参见

参考

ctype Class