The mbsinit() function is defined in <cwchar> header file.
mbsinit() prototype
int mbsinit( const mbstate_t* ps);
If ps is not a null pointer, the mbsinit() function checks if ps represents the initial conversion state.
mbsinit() Parameters
- ps: Pointer to an mbstate_t object to inspect.
mbsinit() Return value
The mbsinit() function returns:
- 0 if ps is not a null pointer and doesn't represent the initial conversion state.
- Nonzero if ps is a null pointer or represents the initial conversion state.
Example: How mbsinit() function works?
#include <cwchar>
#include <clocale>
#include <iostream>
using namespace std;
void test_ps(mbstate_t ps)
{
if (mbsinit(&ps))
cout << "the conversion state is initial conversion state" << endl;
else
cout << "the conversion state is not initial conversion state" << endl;
}
int main()
{
setlocale(LC_ALL, "en_US.utf8");
char str[] = "\u00b5";
mbstate_t ps = mbstate_t();
cout << "Initially after creating ps, ";
test_ps(ps);
mbrlen(str, 1, &ps);
cout << "After performing some task, ";
test_ps(ps);
return 0;
}
When you run the program, the output will be:
Initially after creating ps, the conversion state is initial conversion state After performing some task, the conversion state is not initial conversion state