table of contents
        
      
      
    - Tumbleweed 2024.07.05-1.3
 - Leap-16.0
 - Leap-15.6
 
| std::mbsinit(3) | C++ Standard Libary | std::mbsinit(3) | 
NAME¶
std::mbsinit - std::mbsinit
Synopsis¶
 Defined in header <cwchar>
  
   int mbsinit( const std::mbstate_t* ps);
  
   If ps is not a null pointer, the mbsinit function determines whether the
    pointed-to
  
   std::mbstate_t object describes the initial conversion state.
Notes¶
 Although a zero-initialized std::mbstate_t always represents the
    initial conversion
  
   state, there may be other values of std::mbstate_t that also represent the
    initial
  
   conversion state.
Parameters¶
ps - pointer to the std::mbstate_t object to examine
Return value¶
 0 if ps is not a null pointer and does not represent the initial
    conversion state,
  
   nonzero value otherwise.
Example¶
// Run this code
  
   #include <clocale>
  
   #include <cwchar>
  
   #include <iostream>
  
   #include <string>
  
   int main()
  
   {
  
   // allow mbrlen() to work with UTF-8 multibyte encoding
  
   std::setlocale(LC_ALL, "en_US.utf8");
  
   // UTF-8 narrow multibyte encoding
  
   std::string str = "水"; // or u8"\u6c34" or
    "\xe6\xb0\xb4"
  
   std::mbstate_t mb = std::mbstate_t();
  
   (void)std::mbrlen(&str[0], 1, &mb);
  
   if (!std::mbsinit(&mb))
  
   std::cout << "After processing the first 1 byte of " <<
    str
  
   << " the conversion state is not initial\n";
  
   (void)std::mbrlen(&str[1], str.size() - 1, &mb);
  
   if (std::mbsinit(&mb))
  
   std::cout << "After processing the remaining 2 bytes of "
    << str
  
   << ", the conversion state is initial conversion state\n";
  
   }
Output:¶
 After processing the first 1 byte of 水 the conversion
    state is not initial
  
   After processing the remaining 2 bytes of 水, the conversion state is
    initial conversion state
See also¶
 conversion state information necessary to iterate multibyte
    character
  
   mbstate_t strings
  
   (class)
  
   C documentation for
  
   mbsinit
| 2024.06.10 | http://cppreference.com |