GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::mbrtoc8(3) C++ Standard Libary std::mbrtoc8(3)

std::mbrtoc8 - std::mbrtoc8


Defined in header <cuchar>
std::size_t mbrtoc8( char8_t* pc8,


const char* s, (since C++20)
std::size_t n,


std::mbstate_t* ps );


Converts a narrow multibyte character to UTF-8 encoding.


If s is not a null pointer, inspects at most n bytes of the multibyte character
string, beginning with the byte pointed to by s 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 in s is complete and
valid, converts it to UTF-8 and stores the first UTF-8 code unit in *pc8 (if pc8 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 to mbrtoc8 will write out the additional UTF-8 code units,
without considering *s.


If s is a null pointer, the values of n and pc8 are ignored and the call is
equivalent to std::mbrtoc8(nullptr, "", 1, ps).


If UTF-8 code unit produced is u8'\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.


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


The first of the following that applies:


* 0 if the character converted from s (and stored in *pc8 if non-null) was
the null character
* the number of bytes [1...n] of the multibyte character successfully converted
from s
* 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 next n 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 value EILSEQ is stored in errno and the value of *ps is unspecified.


This section is incomplete
Reason: no example


c8rtomb converts UTF-8 string to narrow multibyte encoding
(C++20) (function)

2022.07.31 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.