Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::mbrtoc8

      From cppreference.com
      <cpp‎ |string‎ |multibyte
       
       
       
       
      Defined in header<cuchar>
      std::size_t mbrtoc8( char8_t* pc8,

                           constchar* s,
                           std::size_t n,

                           std::mbstate_t* ps);
      (since C++20)

      Converts a narrow multibyte character to UTF-8 encoding.

      Ifs is not a null pointer, inspects at mostn bytes of the multibyte character string, beginning with the byte pointed to bys to determine the number of bytes necessary to complete the next multibyte character (including any shift sequences). If the function determines that the next multibyte character ins is complete and valid, converts it to UTF-8 and stores the first UTF-8 code unit in*pc8 (ifpc8 is not null).

      If UTF-8 encoding of the multibyte character in*s consists of more than one UTF-8 code unit, then after the first call to this function,*ps is updated in such a way that the next call tombrtoc8 will write out the additional UTF-8 code units, without considering*s.

      Ifs is a null pointer, the values ofn andpc8 are ignored and the call is equivalent tostd::mbrtoc8(nullptr,"",1, ps).

      If UTF-8 code unit produced isu8'\0', the conversion state*ps represents the initial shift state.

      The multibyte encoding used by this function is specified by the currently active C locale.

      Contents

      [edit]Parameters

      pc8 - pointer to the location where the resulting UTF-8 code units will be written
      s - pointer to the multibyte character string used as input
      n - limit on the number of bytes in s that can be examined
      ps - pointer to the conversion state object used when interpreting the multibyte string

      [edit]Return value

      The first of the following that applies:

      • 0 if the character converted froms (and stored in*pc8 if non-null) was the null character.
      • the number of bytes[1...n] of the multibyte character successfully converted froms.
      • static_cast<std::size_t>(-3) if the next UTF-8 code unit from a character whose encoding consists of multiple code units has now been written to*pc8. No bytes are processed from the input in this case.
      • static_cast<std::size_t>(-2) if the nextn bytes constitute an incomplete, but so far valid, multibyte character. Nothing is written to*pc8.
      • static_cast<std::size_t>(-1) if encoding error occurs. Nothing is written to*pc8, the valueEILSEQ is stored inerrno and the value of*ps is unspecified.

      [edit]Example

      This section is incomplete
      Reason: no example

      [edit]See also

      (C++20)
      converts UTF-8 string to narrow multibyte encoding
      (function)[edit]
      (C++11)
      converts a narrow multibyte character to UTF-16 encoding
      (function)[edit]
      C documentation formbrtoc8
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/string/multibyte/mbrtoc8&oldid=177817"

      [8]ページ先頭

      ©2009-2025 Movatter.jp