Files
2025-10-25 03:02:53 +03:00

44 lines
6.1 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[cwchar.syn]
# 28 Text processing library [[text]](./#text)
## 28.7 Null-terminated sequence utilities [[text.c.strings]](text.c.strings#cwchar.syn)
### 28.7.3 Header <cwchar> synopsis [cwchar.syn]
[🔗](#header:%3ccwchar%3e)
#define __STDC_VERSION_WCHAR_H__ 202311Lnamespace std {using size_t = *see [[support.types.layout]](support.types.layout "17.2.4Sizes, alignments, and offsets")*; // freestandingusing mbstate_t = *see below*; // freestandingusing wint_t = *see below*; // freestandingstruct tm; int fwprintf(FILE* stream, const wchar_t* format, ...); int fwscanf(FILE* stream, const wchar_t* format, ...); int swprintf(wchar_t* s, size_t n, const wchar_t* format, ...); int swscanf(const wchar_t* s, const wchar_t* format, ...); int vfwprintf(FILE* stream, const wchar_t* format, va_list arg); int vfwscanf(FILE* stream, const wchar_t* format, va_list arg); int vswprintf(wchar_t* s, size_t n, const wchar_t* format, va_list arg); int vswscanf(const wchar_t* s, const wchar_t* format, va_list arg); int vwprintf(const wchar_t* format, va_list arg); int vwscanf(const wchar_t* format, va_list arg); int wprintf(const wchar_t* format, ...); int wscanf(const wchar_t* format, ...);
wint_t fgetwc(FILE* stream); wchar_t* fgetws(wchar_t* s, int n, FILE* stream);
wint_t fputwc(wchar_t c, FILE* stream); int fputws(const wchar_t* s, FILE* stream); int fwide(FILE* stream, int mode);
wint_t getwc(FILE* stream);
wint_t getwchar();
wint_t putwc(wchar_t c, FILE* stream);
wint_t putwchar(wchar_t c);
wint_t ungetwc(wint_t c, FILE* stream); double wcstod(const wchar_t* nptr, wchar_t** endptr); float wcstof(const wchar_t* nptr, wchar_t** endptr); long double wcstold(const wchar_t* nptr, wchar_t** endptr); long int wcstol(const wchar_t* nptr, wchar_t** endptr, int base); long long int wcstoll(const wchar_t* nptr, wchar_t** endptr, int base); unsigned long int wcstoul(const wchar_t* nptr, wchar_t** endptr, int base); unsigned long long int wcstoull(const wchar_t* nptr, wchar_t** endptr, int base); wchar_t* wcscpy(wchar_t* s1, const wchar_t* s2); // freestandingwchar_t* wcsncpy(wchar_t* s1, const wchar_t* s2, size_t n); // freestandingwchar_t* wmemcpy(wchar_t* s1, const wchar_t* s2, size_t n); // freestandingwchar_t* wmemmove(wchar_t* s1, const wchar_t* s2, size_t n); // freestandingwchar_t* wcscat(wchar_t* s1, const wchar_t* s2); // freestandingwchar_t* wcsncat(wchar_t* s1, const wchar_t* s2, size_t n); // freestandingint wcscmp(const wchar_t* s1, const wchar_t* s2); // freestandingint wcscoll(const wchar_t* s1, const wchar_t* s2); int wcsncmp(const wchar_t* s1, const wchar_t* s2, size_t n); // freestanding size_t wcsxfrm(wchar_t* s1, const wchar_t* s2, size_t n); int wmemcmp(const wchar_t* s1, const wchar_t* s2, size_t n); // freestandingconst wchar_t* wcschr(const wchar_t* s, wchar_t c); // freestanding; see [[library.c]](library.c "16.2The C standard library")wchar_t* wcschr(wchar_t* s, wchar_t c); // freestanding; see [[library.c]](library.c "16.2The C standard library") size_t wcscspn(const wchar_t* s1, const wchar_t* s2); // freestandingconst wchar_t* wcspbrk(const wchar_t* s1, const wchar_t* s2); // freestanding; see [[library.c]](library.c "16.2The C standard library")wchar_t* wcspbrk(wchar_t* s1, const wchar_t* s2); // freestanding; see [[library.c]](library.c "16.2The C standard library")const wchar_t* wcsrchr(const wchar_t* s, wchar_t c); // freestanding; see [[library.c]](library.c "16.2The C standard library")wchar_t* wcsrchr(wchar_t* s, wchar_t c); // freestanding; see [[library.c]](library.c "16.2The C standard library") size_t wcsspn(const wchar_t* s1, const wchar_t* s2); // freestandingconst wchar_t* wcsstr(const wchar_t* s1, const wchar_t* s2); // freestanding; see [[library.c]](library.c "16.2The C standard library")wchar_t* wcsstr(wchar_t* s1, const wchar_t* s2); // freestanding; see [[library.c]](library.c "16.2The C standard library")wchar_t* wcstok(wchar_t* s1, const wchar_t* s2, wchar_t** ptr); // freestandingconst wchar_t* wmemchr(const wchar_t* s, wchar_t c, size_t n); // freestanding; see [[library.c]](library.c "16.2The C standard library")wchar_t* wmemchr(wchar_t* s, wchar_t c, size_t n); // freestanding; see [[library.c]](library.c "16.2The C standard library") size_t wcslen(const wchar_t* s); // freestandingwchar_t* wmemset(wchar_t* s, wchar_t c, size_t n); // freestanding size_t wcsftime(wchar_t* s, size_t maxsize, const wchar_t* format, const tm* timeptr);
wint_t btowc(int c); int wctob(wint_t c); // [[c.mb.wcs]](c.mb.wcs "28.7.5Multibyte / wide string and character conversion functions"), multibyte / wide string and character conversion functionsint mbsinit(const mbstate_t* ps);
size_t mbrlen(const char* s, size_t n, mbstate_t* ps);
size_t mbrtowc(wchar_t* pwc, const char* s, size_t n, mbstate_t* ps);
size_t wcrtomb(char* s, wchar_t wc, mbstate_t* ps);
size_t mbsrtowcs(wchar_t* dst, const char** src, size_t len, mbstate_t* ps);
size_t wcsrtombs(char* dst, const wchar_t** src, size_t len, mbstate_t* ps);}#define NULL *see [[support.types.nullptr]](support.types.nullptr "17.2.3Null pointers")* // freestanding#define WCHAR_MAX *see below* // freestanding#define WCHAR_MIN *see below* // freestanding#define WEOF *see below* // freestanding#define WCHAR_WIDTH *see below* // freestanding
[1](#1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/text.tex#L13244)
The contents and meaning of the header [<cwchar>](#header:%3ccwchar%3e "28.7.3Header <cwchar> synopsis[cwchar.syn]") are the same as the C standard library header[<wchar.h>](support.c.headers.general#header:%3cwchar.h%3e "17.15.1General[support.c.headers.general]"), except that it does not declare a type wchar_t[.](#1.sentence-1)
[2](#2)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/text.tex#L13249)
[*Note [1](#note-1)*:
The functionswcschr, wcspbrk, wcsrchr, wcsstr, and wmemchr have different signatures in this document,
but they have the same behavior as in the C standard library ([[library.c]](library.c "16.2The C standard library"))[.](#2.sentence-1)
— *end note*]
See also: ISO/IEC 9899:2024, 7.31