11#define __CORRECT_ISO_CPP_STRING_H_PROTO
17#ifndef _NLSCMP_DEFINED
18#define _NLSCMP_DEFINED
19#define _NLSCMPERROR 2147483647
22#ifndef _CRT_MEMORY_DEFINED
23#define _CRT_MEMORY_DEFINED
30 _In_ const void *_Src,
46#if defined __cplusplus
53 const void *_Bufc = _Buf;
159 _In_z_ const char *_Str2);
219 _In_z_ const char *_Str2);
227 _In_z_ const char *_Str2);
244 _In_z_ const char *_Str2);
261 _In_z_ const char *_Str2);
316 _In_z_ const char *_Control);
403 _In_z_ const char *_Control);
411 return const_cast<char*
>(
strpbrk(
static_cast<const char*
>(
_String), _Control));
447 _In_z_ const char *_Control);
465 return const_cast<char*
>(
strstr(
static_cast<const char*
>(
_String), _SubString));
476 _In_z_ const char *_Delim);
509#if __STDC_WANT_SECURE_LIB__
517 _In_ size_t _DstSize,
610 _In_z_ const char *_Str2);
619 _In_z_ const char *_Str2);
671#ifndef _WSTRING_DEFINED
672#define _WSTRING_DEFINED
679 _In_z_ const wchar_t *_Str);
705 return const_cast<wchar_t*
>(
wcschr(
static_cast<const wchar_t*
>(
_String), _C));
714 _In_z_ const wchar_t *_Str1,
715 _In_z_ const wchar_t *_Str2);
730 _In_z_ const wchar_t *_Str,
731 _In_z_ const wchar_t *_Control);
746 _In_z_ const wchar_t *_Str);
784 _In_z_ const wchar_t *_Str,
785 _In_z_ const wchar_t *_Control);
792 return const_cast<wchar_t*
>(
wcspbrk(
static_cast<const wchar_t*
>(_Str), _Control));
802 _In_z_ const wchar_t *_Str,
810 return const_cast<wchar_t*
>(
wcsrchr(
static_cast<const wchar_t*
>(
_String), _C));
819 _In_z_ const wchar_t *_Str,
820 _In_z_ const wchar_t *_Control);
824 _Ret_range_(_Str, _Str + _String_length_(_Str) - 1))
851 _In_z_ const wchar_t *_Delim);
874 _In_z_ const wchar_t *_Str1,
875 _In_z_ const wchar_t *_Str2);
882 _In_z_ const wchar_t *_Str1,
883 _In_z_ const wchar_t *_Str2,
958 _In_z_ const wchar_t *_Src,
967 _In_z_ const wchar_t *_Src,
976 _In_z_ const wchar_t *_Str1,
977 _In_z_ const wchar_t *_Str2);
984 _In_z_ const wchar_t *_Str1,
985 _In_z_ const wchar_t *_Str2,
993 _In_z_ const wchar_t *_Str1,
994 _In_z_ const wchar_t *_Str2);
1001 _In_z_ const wchar_t *_Str1,
1002 _In_z_ const wchar_t *_Str2,
1010 _In_z_ const wchar_t *_Str1,
1011 _In_z_ const wchar_t *_Str2,
1019 _In_z_ const wchar_t *_Str1,
1020 _In_z_ const wchar_t *_Str2,
1029 _In_z_ const wchar_t *_Str1,
1030 _In_z_ const wchar_t *_Str2,
1038 _In_z_ const wchar_t *_Str1,
1039 _In_z_ const wchar_t *_Str2,
1043#if __STDC_WANT_SECURE_LIB__
1059 _In_ size_t SizeInWords,
1075 _In_ size_t _DstSizeInChars,
1076 _In_z_ const wchar_t *_Src,
1095 _In_z_ const wchar_t *_ErrMsg);
1103 _In_ size_t _DstSizeInWords,
1160 _In_z_ const wchar_t *_Str);
1162#define wcswcs wcsstr
1170 _In_z_ const wchar_t *_Str1,
1171 _In_z_ const wchar_t *_Str2);
1227 _In_z_ const wchar_t *_Str1,
1228 _In_z_ const wchar_t *_Str2);
_In_opt_ _Locale _Check_return_wat_ _ACRTIMP errno_t __cdecl _wcsupr_s(_Inout_updates_z_(_Size) wchar_t *_String, _In_ size_t _Size)
_Check_return_wat_ _ACRTIMP errno_t __cdecl _wcserror_s(_Out_writes_opt_z_(_SizeInWords) wchar_t *_Buffer, _In_ size_t _SizeInWords, _In_ int _ErrorNumber)
_Check_return_wat_ _ACRTIMP_ALT errno_t __cdecl __wcserror_s(_Out_writes_opt_z_(_SizeInWords) wchar_t *_Buffer, _In_ size_t _SizeInWords, _In_z_ wchar_t const *_ErrorMessage)
_Check_return_ _Ret_maybenull_ _In_ size_t _Count
#define _CRT_DISABLE_GCC_WARNINGS
#define _CRT_RESTORE_GCC_WARNINGS
#define _CRT_INSECURE_DEPRECATE_CORE(_Replacement)
#define _strnicmp(_String1, _String2, _MaxCount)
#define stricmp(_String1, _String2)
_Check_return_wat_ _CRTIMP errno_t __cdecl _strlwr_s(_Inout_updates_z_(size) char *str, _In_ size_t size)
_Check_return_wat_ _CRTIMP errno_t __cdecl _strset_s(_Inout_updates_z_(size) char *dst, _In_ size_t size, _In_ int val)
_Check_return_wat_ _CRTIMP errno_t __cdecl _strupr_s(_Inout_updates_z_(size) char *str, _In_ size_t size)
_Check_return_wat_ _CRTIMP errno_t __cdecl _strerror_s(_Out_writes_z_(_SizeInBytes) char *buf, _In_ size_t sizeInBytes, _In_opt_z_ const char *errMsg)
_Check_return_wat_ _CRTIMP errno_t __cdecl _wcslwr_s(_Inout_updates_z_(sizeInWords) wchar_t *str, _In_ size_t sizeInWords)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
_CONST_RETURN wchar_t *__cdecl wcsstr(_In_z_ const wchar_t *_Str, _In_z_ const wchar_t *_SubStr)
_In_ _Pre_notnull_ _Buffer
#define memcpy(s1, s2, n)
#define memmove(s1, s2, n)
#define strcpy_s(d, l, s)
#define wcscpy_s(d, l, s)
#define wcsncpy_s(d, l, s, n)
#define _In_reads_bytes_(s)
#define _Out_writes_z_(s)
#define _Out_writes_opt_(s)
#define _Ret_range_(l, h)
#define _Out_writes_bytes_opt_(s)
#define _Inout_updates_z_(s)
#define _Out_writes_bytes_all_opt_(s)
#define _At_buffer_(t, i, c, a)
#define _In_reads_or_z_(s)
#define _Out_writes_opt_z_(s)
#define _Must_inspect_result_
#define _Post_satisfies_(e)
#define _Out_writes_bytes_all_(s)
#define _Post_equal_to_(e)
#define _In_reads_bytes_opt_(s)
_Check_return_ int __cdecl strcmp(_In_z_ const char *_Str1, _In_z_ const char *_Str2)
_Check_return_ _CRTIMP int __cdecl memicmp(_In_reads_bytes_opt_(_Size) const void *_Buf1, _In_reads_bytes_opt_(_Size) const void *_Buf2, _In_ size_t _Size)
_CRTIMP wchar_t *__cdecl wcsrev(_Inout_z_ wchar_t *_Str)
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
_CRT_RESTORE_GCC_WARNINGS _CRTIMP char *__cdecl _strrev(_Inout_z_ char *_Str)
_Check_return_ int __cdecl strncmp(_In_reads_or_z_(_MaxCount) const char *_Str1, _In_reads_or_z_(_MaxCount) const char *_Str2, _In_ size_t _MaxCount)
_Check_return_ _CRTIMP int __cdecl _stricmp_l(_In_z_ const char *_Str1, _In_z_ const char *_Str2, _In_opt_ _locale_t _Locale)
_Check_return_ _CRTIMP char *__cdecl _strerror(_In_opt_z_ const char *_ErrMsg)
_Check_return_ _CRTIMP int __cdecl strcmpi(_In_z_ const char *_Str1, _In_z_ const char *_Str2)
_Check_return_ _CRTIMP int __cdecl _strcoll_l(_In_z_ const char *_Str1, _In_z_ const char *_Str2, _In_opt_ _locale_t _Locale)
_Check_return_ _CRTIMP char *__cdecl strerror(_In_ int)
_Check_return_ _CRTIMP int __cdecl _stricoll_l(_In_z_ const char *_Str1, _In_z_ const char *_Str2, _In_opt_ _locale_t _Locale)
_CRTIMP void *__cdecl memccpy(_Out_writes_bytes_opt_(_Size) void *_Dst, _In_reads_bytes_opt_(_Size) const void *_Src, _In_ int _Val, _In_ size_t _Size)
_Check_return_ _CRTIMP int __cdecl _strcmpi(_In_z_ const char *_Str1, _In_z_ const char *_Str2)
_Check_return_ _CRTIMP int __cdecl _wcsncoll_l(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale)
_CRTIMP wchar_t *__cdecl _wcsrev(_Inout_z_ wchar_t *_Str)
_Check_return_ _CRTIMP int __cdecl _wcsnicoll(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2, _In_ size_t _MaxCount)
_Check_return_ _CRTIMP int __cdecl _strnicoll_l(_In_z_ const char *_Str1, _In_z_ const char *_Str2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale)
_Check_return_ _CRTIMP _CONST_RETURN wchar_t *__cdecl wcspbrk(_In_z_ const wchar_t *_Str, _In_z_ const wchar_t *_Control)
_CRTIMP char *__cdecl strupr(_Inout_z_ char *_Str)
_Check_return_opt_ _CRTIMP size_t __cdecl strxfrm(_Out_writes_opt_(_MaxCount) _Post_maybez_ char *_Dst, _In_z_ const char *_Src, _In_ size_t _MaxCount)
_CRT_RESTORE_GCC_WARNINGS _Check_return_ _CRTIMP char *__cdecl strtok(_Inout_opt_z_ char *_Str, _In_z_ const char *_Delim)
_Check_return_ _CRTIMP int __cdecl _wcsicoll_l(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2, _In_opt_ _locale_t _Locale)
_CRTIMP char *__cdecl strnset(_Inout_updates_z_(_MaxCount) char *_Str, _In_ int _Val, _In_ size_t _MaxCount)
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
_Check_return_ _CRTIMP int __cdecl _wcsnicmp_l(_In_reads_or_z_(_MaxCount) const wchar_t *_Str1, _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale)
_CRT_DISABLE_GCC_WARNINGS _Check_return_ _CRTIMP _CONST_RETURN char *__cdecl strpbrk(_In_z_ const char *_Str, _In_z_ const char *_Control)
_Check_return_opt_ _CRTIMP size_t __cdecl _strxfrm_l(_Out_writes_opt_(_MaxCount) _Post_maybez_ char *_Dst, _In_z_ const char *_Src, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale)
_CRTIMP wchar_t *__cdecl wcsnset(_Inout_updates_z_(_MaxCount) wchar_t *_Str, _In_ wchar_t _Val, _In_ size_t _MaxCount)
_Check_return_ _CRTIMP wchar_t *__cdecl __wcserror(_In_opt_z_ const wchar_t *_Str)
_CRT_DISABLE_GCC_WARNINGS _Check_return_ _CRTIMP _CONST_RETURN char *__cdecl strstr(_In_z_ const char *_Str, _In_z_ const char *_SubStr)
_Check_return_ _CRTIMP size_t __cdecl wcsspn(_In_z_ const wchar_t *_Str, _In_z_ const wchar_t *_Control)
_Check_return_ _CRTIMP wchar_t *__cdecl _wcserror(_In_ int _ErrNum)
_Check_return_opt_ _CRTIMP size_t __cdecl _wcsxfrm_l(_Out_writes_opt_(_MaxCount) _Post_maybez_ wchar_t *_Dst, _In_z_ const wchar_t *_Src, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale)
_CRT_RESTORE_GCC_WARNINGS _Must_inspect_result_ _CRTIMP int __cdecl _memicmp(_In_reads_bytes_opt_(_Size) const void *_Buf1, _In_reads_bytes_opt_(_Size) const void *_Buf2, _In_ size_t _Size)
_Check_return_ _CRTIMP int __cdecl _strnicmp_l(_In_reads_or_z_(_MaxCount) const char *_Str1, _In_reads_or_z_(_MaxCount) const char *_Str2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale)
_Check_return_ _CRTIMP int __cdecl _strncoll_l(_In_z_ const char *_Str1, _In_z_ const char *_Str2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale)
_CRT_RESTORE_GCC_WARNINGS _Check_return_ _CRTIMP wchar_t *__cdecl wcstok(_Inout_opt_z_ wchar_t *_Str, _In_z_ const wchar_t *_Delim)
_Check_return_ _CRTIMP wchar_t *__cdecl _wcsdup(_In_z_ const wchar_t *_Str)
_Must_inspect_result_ _CRTIMP int __cdecl _memicmp_l(_In_reads_bytes_opt_(_Size) const void *_Buf1, _In_reads_bytes_opt_(_Size) const void *_Buf2, _In_ size_t _Size, _In_opt_ _locale_t _Locale)
_Must_inspect_result_ int __cdecl memcmp(_In_reads_bytes_(_Size) const void *_Buf1, _In_reads_bytes_(_Size) const void *_Buf2, _In_ size_t _Size)
_Check_return_ _CRTIMP int __cdecl _wcsnicoll_l(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale)
_CRTIMP wchar_t *__cdecl wcslwr(_Inout_z_ wchar_t *_Str)
_Check_return_ _CRTIMP int __cdecl wcsncmp(_In_reads_or_z_(_MaxCount) const wchar_t *_Str1, _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, _In_ size_t _MaxCount)
_CRTIMP wchar_t *__cdecl wcsupr(_Inout_z_ wchar_t *_Str)
_Check_return_ _CRTIMP int __cdecl _wcsicoll(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
_CRTIMP char *__cdecl strlwr(_Inout_z_ char *_Str)
_CRTIMP wchar_t *__cdecl wcsset(_Inout_z_ wchar_t *_Str, wchar_t _Val)
_Check_return_ _CRTIMP int __cdecl _strncoll(_In_z_ const char *_Str1, _In_z_ const char *_Str2, _In_ size_t _MaxCount)
_Check_return_ _CRTIMP size_t __cdecl wcscspn(_In_z_ const wchar_t *_Str, _In_z_ const wchar_t *_Control)
_Check_return_ _CRTIMP int __cdecl _wcsicmp_l(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2, _In_opt_ _locale_t _Locale)
_Check_return_ wchar_t _Ch
_CRT_DISABLE_GCC_WARNINGS _Check_return_ _CRTIMP _CONST_RETURN char *__cdecl strchr(_In_z_ const char *_Str, _In_ int _Val)
_CRT_DISABLE_GCC_WARNINGS _In_z_ const wchar_t * _SubStr
_Check_return_ _CRTIMP char *__cdecl strdup(_In_opt_z_ const char *_Src)
_Check_return_ _CRTIMP size_t __cdecl strspn(_In_z_ const char *_Str, _In_z_ const char *_Control)
_Check_return_opt_ _CRTIMP size_t __cdecl wcsxfrm(_Out_writes_opt_(_MaxCount) _Post_maybez_ wchar_t *_Dst, _In_z_ const wchar_t *_Src, _In_ size_t _MaxCount)
_CRT_RESTORE_GCC_WARNINGS _CRT_DISABLE_GCC_WARNINGS _Check_return_ _CRTIMP _CONST_RETURN char *__cdecl strrchr(_In_z_ const char *_Str, _In_ int _Ch)
_Check_return_ _CRTIMP int __cdecl _wcscoll_l(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2, _In_opt_ _locale_t _Locale)
_CRTIMP size_t __cdecl strlen(_In_z_ const char *_Str)
_Check_return_ _CRTIMP int __cdecl wcscoll(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
_CRTIMP void *__cdecl _memccpy(_Out_writes_bytes_opt_(_MaxCount) void *_Dst, _In_ const void *_Src, _In_ int _Val, _In_ size_t _MaxCount)
_Check_return_ _CRTIMP int __cdecl _strnicoll(_In_z_ const char *_Str1, _In_z_ const char *_Str2, _In_ size_t _MaxCount)
_CRTIMP char *__cdecl strset(_Inout_z_ char *_Str, _In_ int _Val)
_CRTIMP char *__cdecl strrev(_Inout_z_ char *_Str)
_Check_return_ _CRTIMP int __cdecl wcsicoll(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
_Check_return_ _CRTIMP wchar_t *__cdecl wcsdup(_In_z_ const wchar_t *_Str)
_Check_return_ _CRTIMP size_t __cdecl strcspn(_In_z_ const char *_Str, _In_z_ const char *_Control)
char * strlwr_l(char *_String, _locale_t _Locale)
_Check_return_ _CRTIMP int __cdecl _wcsnicmp(_In_reads_or_z_(_MaxCount) const wchar_t *_Str1, _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, _In_ size_t _MaxCount)
_Check_return_ _CRTIMP int __cdecl _stricoll(_In_z_ const char *_Str1, _In_z_ const char *_Str2)
_Check_return_ _CRTIMP int __cdecl _wcsncoll(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2, _In_ size_t _MaxCount)
_In_ size_t _In_z_ _Printf_format_string_ const char _In_ const struct tm _In_opt_ _locale_t _Locale
int CDECL strcat_s(char *dst, size_t elem, const char *src)
int CDECL memmove_s(void *dest, size_t numberOfElements, const void *src, size_t count)
int CDECL memcpy_s(void *dest, size_t numberOfElements, const void *src, size_t count)
int CDECL strerror_s(char *buffer, size_t numberOfElements, int errnum)
size_t __cdecl strnlen(char const *const string, size_t const maximum_count)
size_t __cdecl wcsnlen(wchar_t const *const string, size_t const maximum_count)
char *CDECL strtok_s(char *str, const char *delim, char **ctx)
#define _Check_return_opt_
#define _CRT_NONSTDC_DEPRECATE(_NewName)
#define _Check_return_wat_
#define _CRT_INSECURE_DEPRECATE_MEMORY(_Replacement)
#define _CRT_INSECURE_DEPRECATE(_Replacement)
INT CDECL wcscat_s(wchar_t *dst, size_t elem, const wchar_t *src)
wchar_t *CDECL wcstok_s(wchar_t *str, const wchar_t *delim, wchar_t **next_token)