函数
<cwchar>

mbsinit

int mbsinit (const mbstate_t* ps);
检查初始转换状态
检查 ps 是否指向一个 mbstate_t 对象,该对象描述了初始转换状态。

值为零的 mbstate_t 对象始终描述一个初始转换状态,尽管其他值也可能表示这种状态(取决于具体的库实现)。如果 ps 指向表示初始状态的 mbstate_t 对象,或者 ps 是空指针,则此函数返回非零值。

调用此函数绝不会改变 ps 指示的状态。

可以通过调用以下函数将 ps 指示的状态设置为初始状态
1
memset (ps,0,sizeof(*ps));  // ps points now to a zero-valued object 

参数

ps
mbstate_t 对象的指针。

返回值

如果 ps 指向一个描述初始转换状态的 mbstate_t 对象,或者 ps 是空指针,则返回非零值。
否则,返回零值。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/* mbsinit example */
#include <wchar.h>
#include <string.h>
#include <stdio.h>

int main()
{
  char buffer[80];
  mbstate_t mbst;
  const wchar_t wcs [] = L"mbsinit example";
  const wchar_t * p;

  p = wcs;

  if ( !mbsinit(&mbst) )
    memset (&mbst,0,sizeof(mbst));  /* set to initial state */

  wcsrtombs ( buffer, &p, 80, &mbst);
  printf (buffer);

  return 0;
}

输出
mbsinit example


另见