标准库标头 <wchar.h> (C95)
来自cppreference.com
此标头是空终止宽字符串库的一部分。
函数
转换为数值格式 | |
(C95)(C99) | 转换宽字符串为整数 (函数) |
(C95)(C99) | 转换宽字符串为无符号整数 (函数) |
(C99)(C95)(C99) | 转换宽字符串为浮点数 (函数) |
字符串操纵 | |
(C95)(C11) | 复制宽字符串给另一个 (函数) |
(C95)(C11) | 复制字符串一定量的宽字符到另一个 (函数) |
(C95)(C11) | 追加一个宽字符串的副本到另一个 (函数) |
(C95)(C11) | 追加宽字符串中的一定量宽字符串到另一个 (函数) |
(C95) | 变换宽字符串,使得 wcscmp 会产生与 wcscoll 相同的结果 (函数) |
字符串检验 | |
(C95)(C11) | 返回宽字符串的长度 (函数) |
(C95) | 比较两个宽字符串 (函数) |
(C95) | 比较来自两个宽字符串的一定量字符 (函数) |
(C95) | 根据当前本地环境比较两个宽字符串 (函数) |
(C95) | 查找宽字符在宽字符串中的首次出现 (函数) |
(C95) | 查找宽字符在宽字符串中的最后一次出现 (函数) |
(C95) | 返回仅由另一个宽字符串中出现的宽字符分隔的最长首段长度 (函数) |
(C95) | 返回仅由不 出现于另一个宽字符串中的宽字符分隔的最长首段长度 (函数) |
(C95) | 查找一个宽字符串中的任何字符在另一个宽字符串中的首个位置 (函数) |
(C95) | 查找一个宽字符串在另一个宽字符串中的首次出现 (函数) |
(C95)(C11) | 查找宽字符串中的下一个记号 (函数) |
宽字符数组操纵 | |
(C95)(C11) | 在两个不重叠的数组间复制一定数量的宽字符 (函数) |
(C95)(C11) | 在两个可能重叠的数组间复制一定数量的宽字符 (函数) |
(C95) | 比较两个数组中一定数量的宽字符 (函数) |
(C95) | 在宽字符数组中查找宽字符的首次出现 (函数) |
(C95) | 复制给定的宽字符到宽字符数组的所有位置 (函数) |
类型
wchar_t | 可以保有任意有效宽字符的整数类型 (typedef) |
wint_t (C95) | 可以保有任意有效宽字符和至少一个额外值的整数类型 (typedef) |
宏
WEOF (C95) | wint_t 类型的非字符值,用于指示错误 (宏常量) |
WCHAR_MIN (C95) | wchar_t 的最小有效值 (宏常量) |
WCHAR_MAX (C95) | wchar_t 的最大有效值 (宏常量) |
概要
#define __STDC_VERSION_WCHAR_H__ 202311L typedef /* 见描述 */ wchar_t; typedef /* 见描述 */ size_t; typedef /* 见描述 */ mbstate_t; typedef /* 见描述 */ wint_t; struct tm { /* 见描述 */ }; #define MB_UTF16 /* 见描述 */ #define MB_UTF32 /* 见描述 */ #define MB_UTF8 /* 见描述 */ #define NULL /* 见描述 */ #define WCHAR_MAX /* 见描述 */ #define WCHAR_MIN /* 见描述 */ #define WCHAR_UTF16 /* 见描述 */ #define WCHAR_UTF32 /* 见描述 */ #define WCHAR_UTF8 /* 见描述 */ #define WCHAR_WIDTH /* 见描述 */ #define WEOF /* 见描述 */ int fwprintf(FILE* restrict stream, const wchar_t* restrict format, ...); int fwscanf(FILE* restrict stream, const wchar_t* restrict format, ...); int swprintf(wchar_t* restrict s, size_t n, const wchar_t* restrict format, ...); int swscanf(const wchar_t* restrict s, const wchar_t* restrict format, ...); int vfwprintf(FILE* restrict stream, const wchar_t* restrict format, va_list arg); int vfwscanf(FILE* restrict stream, const wchar_t* restrict format, va_list arg); int vswprintf(wchar_t* restrict s, size_t n, const wchar_t* restrict format, va_list arg); int vswscanf(const wchar_t* restrict s, const wchar_t* restrict format, va_list arg); int vwprintf(const wchar_t* restrict format, va_list arg); int vwscanf(const wchar_t* restrict format, va_list arg); int wprintf(const wchar_t* restrict format, ...); int wscanf(const wchar_t* restrict format, ...); wint_t fgetwc(FILE* stream); wchar_t* fgetws(wchar_t* restrict s, int n, FILE* restrict stream); wint_t fputwc(wchar_t c, FILE* stream); int fputws(const wchar_t* restrict s, FILE* restrict stream); int fwide(FILE* stream, int mode); wint_t getwc(FILE* stream); wint_t getwchar(void); 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* restrict nptr, wchar_t** restrict endptr); float wcstof(const wchar_t* restrict nptr, wchar_t** restrict endptr); long double wcstold(const wchar_t* restrict nptr, wchar_t** restrict endptr); long int wcstol(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base); long long int wcstoll(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base); unsigned long int wcstoul(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base); unsigned long long int wcstoull(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base); wchar_t* wcscpy(wchar_t* restrict s1, const wchar_t* restrict s2); wchar_t* wcsncpy(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n); wchar_t* wmemcpy(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n); wchar_t* wmemmove(wchar_t* s1, const wchar_t* s2, size_t n); wchar_t* wcscat(wchar_t* restrict s1, const wchar_t* restrict s2); wchar_t* wcsncat(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n); int wcscmp(const wchar_t* s1, const wchar_t* s2); int wcscoll(const wchar_t* s1, const wchar_t* s2); int wcsncmp(const wchar_t* s1, const wchar_t* s2, size_t n); size_t wcsxfrm(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n); int wmemcmp(const wchar_t* s1, const wchar_t* s2, size_t n); /*QWchar_t*/* wcschr(/*QWchar_t*/* s, wchar_t c); size_t wcscspn(const wchar_t* s1, const wchar_t* s2); /*QWchar_t*/* wcspbrk(/*QWchar_t*/* s1, const wchar_t* s2); /*QWchar_t*/* wcsrchr(/*QWchar_t*/* s, wchar_t c); size_t wcsspn(const wchar_t* s1, const wchar_t* s2); /*QWchar_t*/* wcsstr(/*QWchar_t*/* s1, const wchar_t* s2); wchar_t* wcstok(wchar_t* restrict s1, const wchar_t* restrict s2, wchar_t** restrict ptr); /*QWchar_t*/* wmemchr(/*QWchar_t*/* s, wchar_t c, size_t n); size_t wcslen(const wchar_t* s); size_t wcsnlen(const wchar_t* s, size_t n); wchar_t* wmemset(wchar_t* s, wchar_t c, size_t n); size_t wcsftime(wchar_t* restrict s, size_t maxsize, const wchar_t* restrict format, const struct tm* restrict timeptr); wint_t btowc(int c); int wctob(wint_t c); int mbsinit(const mbstate_t* ps); size_t mbrlen(const char* restrict s, size_t n, mbstate_t* restrict ps); size_t mbrtowc(wchar_t* restrict pwc, const char* restrict s, size_t n, mbstate_t* restrict ps); size_t wcrtomb(char* restrict s, wchar_t wc, mbstate_t* restrict ps); size_t mbsrtowcs(wchar_t* restrict dst, const char** restrict src, size_t len, mbstate_t* restrict ps); size_t wcsrtombs(char* restrict dst, const wchar_t** restrict src, size_t len, mbstate_t* restrict ps);
仅当实现定义了 __STDC_IEC_60559_DFP__:
_Decimal32 wcstod32(const wchar_t* restrict nptr, wchar_t** restrict endptr); _Decimal64 wcstod64(const wchar_t* restrict nptr, wchar_t** restrict endptr); _Decimal128 wcstod128(const wchar_t* restrict nptr, wchar_t** restrict endptr);
仅当实现定义了 __STDC_IEC_60559_TYPES__,并且用户代码在对 <wchar.h> 的所有包含前定义了 __STDC_WANT_IEC_60559_TYPES_EXT__:
#ifdef __STDC_WANT_IEC_60559_TYPES_EXT__ /*_FloatN*/ /*wcstofN*/(const wchar_t* restrict nptr, wchar_t** restrict endptr); /*_FloatNx*/ /*wcstofNx*/(const wchar_t* restrict nptr, wchar_t** restrict endptr); /*_DecimalN*/ /*wcstodN*/(const wchar_t* restrict nptr, wchar_t** restrict endptr); /*_DecimalNx*/ /*wcstodNx*/(const wchar_t* restrict nptr, wchar_t** restrict endptr); void /*wcstoencfN*/(unsigned char encptr[restrict static N/8], const wchar_t* restrict nptr, wchar_t** restrict endptr); void /*wcstoencdecdN*/(unsigned char encptr[restrict static N/8], const wchar_t* restrict nptr, wchar_t** restrict endptr); void /*wcstoencbindN*/(unsigned char encptr[restrict static N/8], const wchar_t* restrict nptr, wchar_t** restrict endptr); #endif
仅当实现定义了 __STDC_LIB_EXT1__,并且用户代码在对 <wchar.h> 的所有包含前定义了 __STDC_WANT_LIB_EXT1__:
#ifdef __STDC_WANT_LIB_EXT1__ typedef /* 见描述 */ errno_t; typedef /* 见描述 */ rsize_t; int fwprintf_s(FILE* restrict stream, const wchar_t* restrict format, ...); int fwscanf_s(FILE* restrict stream, const wchar_t* restrict format, ...); int snwprintf_s(wchar_t* restrict s, rsize_t n, const wchar_t* restrict format, ...); int swprintf_s(wchar_t* restrict s, rsize_t n, const wchar_t* restrict format, ...); int swscanf_s(const wchar_t* restrict s, const wchar_t* restrict format, ...); int vfwprintf_s(FILE* restrict stream, const wchar_t* restrict format, va_list arg); int vfwscanf_s(FILE* restrict stream, const wchar_t* restrict format, va_list arg); int vsnwprintf_s(wchar_t* restrict s, rsize_t n, const wchar_t* restrict format, va_list arg); int vswprintf_s(wchar_t* restrict s, rsize_t n, const wchar_t* restrict format, va_list arg); int vswscanf_s(const wchar_t* restrict s, const wchar_t* restrict format, va_list arg); int vwprintf_s(const wchar_t* restrict format, va_list arg); int vwscanf_s(const wchar_t* restrict format, va_list arg); int wprintf_s(const wchar_t* restrict format, ...); int wscanf_s(const wchar_t* restrict format, ...); errno_t wcscpy_s(wchar_t* restrict s1, rsize_t s1max, const wchar_t* restrict s2); errno_t wcsncpy_s(wchar_t* restrict s1, rsize_t s1max, const wchar_t* restrict s2, rsize_t n); errno_t wmemcpy_s(wchar_t* restrict s1, rsize_t s1max, const wchar_t* restrict s2, rsize_t n); errno_t wmemmove_s(wchar_t* s1, rsize_t s1max, const wchar_t* s2, rsize_t n); errno_t wcscat_s(wchar_t* restrict s1, rsize_t s1max, const wchar_t* restrict s2); errno_t wcsncat_s(wchar_t* restrict s1, rsize_t s1max, const wchar_t* restrict s2, rsize_t n); wchar_t* wcstok_s(wchar_t* restrict s1, rsize_t* restrict s1max, const wchar_t* restrict s2, wchar_t** restrict ptr); size_t wcsnlen_s(const wchar_t* s, size_t maxsize); errno_t wcrtomb_s(size_t* restrict retval, char* restrict s, rsize_t smax, wchar_t wc, mbstate_t* restrict ps); errno_t mbsrtowcs_s(size_t* restrict retval, wchar_t* restrict dst, rsize_t dstmax, const char** restrict src, rsize_t len, mbstate_t* restrict ps); errno_t wcsrtombs_s(size_t* restrict retval, char* restrict dst, rsize_t dstmax, const wchar_t** restrict src, rsize_t len, mbstate_t* restrict ps); #endif