Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593//// string.h//// Copyright (c) Microsoft Corporation. All rights reserved.//// The C Standard Library <string.h> header.//#pragma once#ifndef _INC_STRING // include guard for 3rd party interop#define _INC_STRING
#include <corecrt.h>#include <corecrt_memory.h>#include <corecrt_wstring.h>#include <vcruntime_string.h>
#ifndef __midl
#pragma warning(push)#pragma warning(disable: _UCRT_DISABLED_WARNINGS)_UCRT_DISABLE_CLANG_WARNINGS
_CRT_BEGIN_C_HEADER
#define _NLSCMPERROR _CRT_INT_MAX // currently == INT_MAX
#if __STDC_WANT_SECURE_LIB__
_Check_return_wat_ _ACRTIMP errno_t __cdecl strcpy_s( _Out_writes_z_(_SizeInBytes) char* _Destination, _In_ rsize_t _SizeInBytes, _In_z_ char const* _Source );
_Check_return_wat_ _ACRTIMP errno_t __cdecl strcat_s( _Inout_updates_z_(_SizeInBytes) char* _Destination, _In_ rsize_t _SizeInBytes, _In_z_ char const* _Source );
_Check_return_wat_ _ACRTIMP errno_t __cdecl strerror_s( _Out_writes_z_(_SizeInBytes) char* _Buffer, _In_ size_t _SizeInBytes, _In_ int _ErrorNumber);
_Check_return_wat_ _ACRTIMP errno_t __cdecl strncat_s( _Inout_updates_z_(_SizeInBytes) char* _Destination, _In_ rsize_t _SizeInBytes, _In_reads_or_z_(_MaxCount) char const* _Source, _In_ rsize_t _MaxCount );
_Check_return_wat_ _ACRTIMP errno_t __cdecl strncpy_s( _Out_writes_z_(_SizeInBytes) char* _Destination, _In_ rsize_t _SizeInBytes, _In_reads_or_z_(_MaxCount) char const* _Source, _In_ rsize_t _MaxCount );
_Check_return_ _ACRTIMP char* __cdecl strtok_s( _Inout_opt_z_ char* _String, _In_z_ char const* _Delimiter, _Inout_ _Deref_prepost_opt_z_ char** _Context );
#endif // __STDC_WANT_SECURE_LIB__
_ACRTIMP void* __cdecl _memccpy( _Out_writes_bytes_opt_(_MaxCount) void* _Dst, _In_ void const* _Src, _In_ int _Val, _In_ size_t _MaxCount );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1( errno_t, strcat_s, char, _Destination, _In_z_ char const*, _Source )
#ifndef RC_INVOKED
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1( char*, __RETURN_POLICY_DST, __EMPTY_DECLSPEC, strcat, _Inout_updates_z_(_String_length_(_Destination) + _String_length_(_Source) + 1), char, _Destination, _In_z_ char const*, _Source )
#endif // RC_INVOKED
_Check_return_int __cdecl strcmp( _In_z_ char const* _Str1, _In_z_ char const* _Str2 );
_Check_return__ACRTIMP int __cdecl _strcmpi( _In_z_ char const* _String1, _In_z_ char const* _String2 );
_Check_return__ACRTIMP int __cdecl strcoll( _In_z_ char const* _String1, _In_z_ char const* _String2 );
_Check_return__ACRTIMP int __cdecl _strcoll_l( _In_z_ char const* _String1, _In_z_ char const* _String2, _In_opt_ _locale_t _Locale );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1( errno_t, strcpy_s, _Post_z_ char, _Destination, _In_z_ char const*, _Source )
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1( char*, __RETURN_POLICY_DST, __EMPTY_DECLSPEC, strcpy, _Out_writes_z_(_String_length_(_Source) + 1), char, _Destination, _In_z_ char const*, _Source )
_Check_return__ACRTIMP size_t __cdecl strcspn( _In_z_ char const* _Str, _In_z_ char const* _Control );
#if defined _DEBUG && defined _CRTDBG_MAP_ALLOC #pragma push_macro("_strdup") #undef _strdup#endif
_Check_return__ACRTIMP _CRTALLOCATOR char* __cdecl _strdup( _In_opt_z_ char const* _Source );
#if defined _DEBUG && defined _CRTDBG_MAP_ALLOC #pragma pop_macro("_strdup")#endif
_Ret_z__Success_(return != 0)_Check_return_ _CRT_INSECURE_DEPRECATE(_strerror_s)_ACRTIMP char* __cdecl _strerror( _In_opt_z_ char const* _ErrorMessage );
_Check_return_wat__ACRTIMP errno_t __cdecl _strerror_s( _Out_writes_z_(_SizeInBytes) char* _Buffer, _In_ size_t _SizeInBytes, _In_opt_z_ char const* _ErrorMessage );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1( errno_t, _strerror_s, char, _Buffer, _In_opt_z_ char const*, _ErrorMessage )
_Ret_z__Check_return_ _CRT_INSECURE_DEPRECATE(strerror_s)_ACRTIMP char* __cdecl strerror( _In_ int _ErrorMessage );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1( errno_t, strerror_s, char, _Buffer, _In_ int, _ErrorMessage )
_Check_return__ACRTIMP int __cdecl _stricmp( _In_z_ char const* _String1, _In_z_ char const* _String2 );
_Check_return__ACRTIMP int __cdecl _stricoll( _In_z_ char const* _String1, _In_z_ char const* _String2 );
_Check_return__ACRTIMP int __cdecl _stricoll_l( _In_z_ char const* _String1, _In_z_ char const* _String2, _In_opt_ _locale_t _Locale );
_Check_return__ACRTIMP int __cdecl _stricmp_l( _In_z_ char const* _String1, _In_z_ char const* _String2, _In_opt_ _locale_t _Locale );
_Check_return_size_t __cdecl strlen( _In_z_ char const* _Str );
_Check_return_wat__ACRTIMP errno_t __cdecl _strlwr_s( _Inout_updates_z_(_Size) char* _String, _In_ size_t _Size );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0( errno_t, _strlwr_s, _Prepost_z_ char, _String )
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0( char*, __RETURN_POLICY_DST, _ACRTIMP, _strlwr, _Inout_z_, char, _String )
_Check_return_wat__ACRTIMP errno_t __cdecl _strlwr_s_l( _Inout_updates_z_(_Size) char* _String, _In_ size_t _Size, _In_opt_ _locale_t _Locale );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1( errno_t, _strlwr_s_l, _Prepost_z_ char, _String, _In_opt_ _locale_t, _Locale )
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX( char*, __RETURN_POLICY_DST, _ACRTIMP, _strlwr_l, _strlwr_s_l, _Inout_updates_z_(_Size) char, _Inout_z_, char, _String, _In_opt_ _locale_t, _Locale )
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2( errno_t, strncat_s, _Prepost_z_ char, _Destination, _In_reads_or_z_(_Count) char const*, _Source, _In_ size_t, _Count )
__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX( char*, __RETURN_POLICY_DST, _ACRTIMP, strncat, strncat_s, _Inout_updates_z_(_Size) char, _Inout_updates_z_(_Count), char, _Destination, _In_reads_or_z_(_Count) char const*, _Source, _In_ size_t, _Count )
_Check_return__ACRTIMP int __cdecl strncmp( _In_reads_or_z_(_MaxCount) char const* _Str1, _In_reads_or_z_(_MaxCount) char const* _Str2, _In_ size_t _MaxCount );
_Check_return__ACRTIMP int __cdecl _strnicmp( _In_reads_or_z_(_MaxCount) char const* _String1, _In_reads_or_z_(_MaxCount) char const* _String2, _In_ size_t _MaxCount );
_Check_return__ACRTIMP int __cdecl _strnicmp_l( _In_reads_or_z_(_MaxCount) char const* _String1, _In_reads_or_z_(_MaxCount) char const* _String2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale );
_Check_return__ACRTIMP int __cdecl _strnicoll( _In_reads_or_z_(_MaxCount) char const* _String1, _In_reads_or_z_(_MaxCount) char const* _String2, _In_ size_t _MaxCount );
_Check_return__ACRTIMP int __cdecl _strnicoll_l( _In_reads_or_z_(_MaxCount) char const* _String1, _In_reads_or_z_(_MaxCount) char const* _String2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale );
_Check_return__ACRTIMP int __cdecl _strncoll( _In_reads_or_z_(_MaxCount) char const* _String1, _In_reads_or_z_(_MaxCount) char const* _String2, _In_ size_t _MaxCount );
_Check_return__ACRTIMP int __cdecl _strncoll_l( _In_reads_or_z_(_MaxCount) char const* _String1, _In_reads_or_z_(_MaxCount) char const* _String2, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale );
_ACRTIMP size_t __cdecl __strncnt( _In_reads_or_z_(_Count) char const* _String, _In_ size_t _Count );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2( errno_t, strncpy_s, char, _Destination, _In_reads_or_z_(_Count) char const*, _Source, _In_ size_t, _Count )
__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX( char*, __RETURN_POLICY_DST, _ACRTIMP, strncpy, strncpy_s, _Out_writes_z_(_Size) char, _Out_writes_(_Count) _Post_maybez_, char, _Destination, _In_reads_or_z_(_Count) char const*, _Source, _In_ size_t, _Count )
_Check_return__When_( _MaxCount > _String_length_(_String), _Post_satisfies_(return == _String_length_(_String)))_When_( _MaxCount <= _String_length_(_String), _Post_satisfies_(return == _MaxCount))_ACRTIMP size_t __cdecl strnlen( _In_reads_or_z_(_MaxCount) char const* _String, _In_ size_t _MaxCount );
#if __STDC_WANT_SECURE_LIB__ && !defined __midl
_Check_return_ _When_( _MaxCount > _String_length_(_String), _Post_satisfies_(return == _String_length_(_String)) ) _When_( _MaxCount <= _String_length_(_String), _Post_satisfies_(return == _MaxCount) ) static __inline size_t __CRTDECL strnlen_s( _In_reads_or_z_(_MaxCount) char const* _String, _In_ size_t _MaxCount ) { return _String == 0 ? 0 : strnlen(_String, _MaxCount); }
#endif
_Check_return_wat__ACRTIMP errno_t __cdecl _strnset_s( _Inout_updates_z_(_SizeInBytes) char* _String, _In_ size_t _SizeInBytes, _In_ int _Value, _In_ size_t _MaxCount );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2( errno_t, _strnset_s, _Prepost_z_ char, _Destination, _In_ int, _Value, _In_ size_t, _Count )
__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX( char*, __RETURN_POLICY_DST, _ACRTIMP, _strnset, _strnset_s, _Inout_updates_z_(_Size) char, _Inout_updates_z_(_Count), char, _Destination, _In_ int, _Value, _In_ size_t, _Count )
_Check_return__ACRTIMP char _CONST_RETURN* __cdecl strpbrk( _In_z_ char const* _Str, _In_z_ char const* _Control );
_ACRTIMP char* __cdecl _strrev( _Inout_z_ char* _Str );
_Check_return_wat__ACRTIMP errno_t __cdecl _strset_s( _Inout_updates_z_(_DestinationSize) char* _Destination, _In_ size_t _DestinationSize, _In_ int _Value );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1( errno_t, _strset_s, _Prepost_z_ char, _Destination, _In_ int, _Value )
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1( char*, __RETURN_POLICY_DST, __EMPTY_DECLSPEC, _strset, _Inout_z_, char, _Destination, _In_ int, _Value )
_Check_return__ACRTIMP size_t __cdecl strspn( _In_z_ char const* _Str, _In_z_ char const* _Control );
_Check_return_ _CRT_INSECURE_DEPRECATE(strtok_s)_ACRTIMP char* __cdecl strtok( _Inout_opt_z_ char* _String, _In_z_ char const* _Delimiter );
_Check_return_wat__ACRTIMP errno_t __cdecl _strupr_s( _Inout_updates_z_(_Size) char* _String, _In_ size_t _Size );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0( errno_t, _strupr_s, _Prepost_z_ char, _String )
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0( char*, __RETURN_POLICY_DST, _ACRTIMP, _strupr, _Inout_z_, char, _String )
_Check_return_wat__ACRTIMP errno_t __cdecl _strupr_s_l( _Inout_updates_z_(_Size) char* _String, _In_ size_t _Size, _In_opt_ _locale_t _Locale );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1( errno_t, _strupr_s_l, _Prepost_z_ char, _String, _In_opt_ _locale_t, _Locale )
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX( char*, __RETURN_POLICY_DST, _ACRTIMP, _strupr_l, _strupr_s_l, _Inout_updates_z_(_Size) char, _Inout_z_, char, _String, _In_opt_ _locale_t, _Locale )
_Success_(return < _MaxCount)_Check_return_opt__ACRTIMP size_t __cdecl strxfrm( _Out_writes_opt_(_MaxCount) _Post_maybez_ char* _Destination, _In_z_ char const* _Source, _In_ _In_range_(<=,_CRT_INT_MAX) size_t _MaxCount );
_Success_(return < _MaxCount)_Check_return_opt__ACRTIMP size_t __cdecl _strxfrm_l( _Out_writes_opt_(_MaxCount) _Post_maybez_ char* _Destination, _In_z_ char const* _Source, _In_ _In_range_(<=,_CRT_INT_MAX) size_t _MaxCount, _In_opt_ _locale_t _Locale );
#ifdef __cplusplusextern "C++"{ _Check_return_ inline char* __CRTDECL strchr(_In_z_ char* const _String, _In_ int const _Ch) { return const_cast<char*>(strchr(static_cast<char const*>(_String), _Ch)); }
_Check_return_ inline char* __CRTDECL strpbrk(_In_z_ char* const _String, _In_z_ char const* const _Control) { return const_cast<char*>(strpbrk(static_cast<char const*>(_String), _Control)); }
_Check_return_ inline char* __CRTDECL strrchr(_In_z_ char* const _String, _In_ int const _Ch) { return const_cast<char*>(strrchr(static_cast<char const*>(_String), _Ch)); }
_Check_return_ _Ret_maybenull_ inline char* __CRTDECL strstr(_In_z_ char* const _String, _In_z_ char const* const _SubString) { return const_cast<char*>(strstr(static_cast<char const*>(_String), _SubString)); }}#endif // __cplusplus
#if defined(_CRT_INTERNAL_NONSTDC_NAMES) && _CRT_INTERNAL_NONSTDC_NAMES
#pragma push_macro("strdup") #undef strdup _Check_return_ _CRT_NONSTDC_DEPRECATE(_strdup) _ACRTIMP char* __cdecl strdup( _In_opt_z_ char const* _String ); #pragma pop_macro("strdup")
// Declarations of functions defined in oldnames.lib: _Check_return_ _CRT_NONSTDC_DEPRECATE(_strcmpi) _ACRTIMP int __cdecl strcmpi( _In_z_ char const* _String1, _In_z_ char const* _String2 );
_Check_return_ _CRT_NONSTDC_DEPRECATE(_stricmp) _ACRTIMP int __cdecl stricmp( _In_z_ char const* _String1, _In_z_ char const* _String2 );
_CRT_NONSTDC_DEPRECATE(_strlwr) _ACRTIMP char* __cdecl strlwr( _Inout_z_ char* _String );
_Check_return_ _CRT_NONSTDC_DEPRECATE(_strnicmp) _ACRTIMP int __cdecl strnicmp( _In_reads_or_z_(_MaxCount) char const* _String1, _In_reads_or_z_(_MaxCount) char const* _String2, _In_ size_t _MaxCount );
_CRT_NONSTDC_DEPRECATE(_strnset) _ACRTIMP char* __cdecl strnset( _Inout_updates_z_(_MaxCount) char* _String, _In_ int _Value, _In_ size_t _MaxCount );
_CRT_NONSTDC_DEPRECATE(_strrev) _ACRTIMP char* __cdecl strrev( _Inout_z_ char* _String );
_CRT_NONSTDC_DEPRECATE(_strset) char* __cdecl strset( _Inout_z_ char* _String, _In_ int _Value);
_CRT_NONSTDC_DEPRECATE(_strupr) _ACRTIMP char* __cdecl strupr( _Inout_z_ char* _String );
#endif // _CRT_INTERNAL_NONSTDC_NAMES
_CRT_END_C_HEADER_UCRT_RESTORE_CLANG_WARNINGS#pragma warning(pop) // _UCRT_DISABLED_WARNINGS#endif // !__midl#endif // _INC_STRING