27template<
typename TChar>
30 TChar* start= &array[0];
31 TChar* end = &array[length-1];
42template<
typename TChar>
44 const TChar* needles,
integer needlesLength )
46 if ( length == -1 ) length=
static_cast<integer>(
Length( haystack ) );
47 if ( needlesLength == -1 ) needlesLength=
static_cast<integer>(
Length( needles ) );
49 const TChar* end= haystack + length;
51 const TChar* s= haystack;
54 for(
integer i= 0; i < needlesLength ; ++i )
55 if( *(needles + i) == *s )
63template<
typename TChar>
65 const TChar* needles,
integer needlesLength )
67 if ( length == -1 ) length=
static_cast<integer>(
Length( haystack ) );
68 if ( needlesLength == -1 ) needlesLength=
static_cast<integer>(
Length( needles ) );
70 const TChar* end= haystack + length;
71 const TChar* s = haystack - 1;
75 for( i= 0; i < needlesLength ; ++i )
76 if( needles[i] == *s )
78 if ( i == needlesLength )
85template<
typename TChar>
87 const TChar* needles,
integer needlesLength )
89 if ( needlesLength == -1 ) needlesLength=
static_cast<integer>(
Length( needles ) );
91 const TChar* s= haystack + startPos;
92 while( s >= haystack )
95 for(
integer i= 0; i < needlesLength ; ++i )
96 if( *(needles + i) == *s )
104template<
typename TChar>
106 const TChar* needles,
integer needlesLength )
108 if ( needlesLength == -1 ) needlesLength=
static_cast<integer>(
Length( needles ) );
110 const TChar* s= haystack + startPos;
111 while( s >= haystack )
116 for( i= 0; i < needlesLength ; ++i )
117 if( needles[i] == *s )
119 if ( i == needlesLength )
127template<
typename TChar>
129 const TChar* needle,
integer needleLength,
132 if ( haystackLength == -1 ) haystackLength=
static_cast<integer>(
Length( haystack ) );
133 if ( needleLength == -1 ) needleLength=
static_cast<integer>(
Length( needle ) );
139 while( idx != haystackLength
140 && idx != needleLength
141 && haystack[idx] == needle[idx] )
146 while( idx != haystackLength
147 && idx != needleLength
170#if !ALIB_CHARACTERS_NATIVE_WCHAR
173 wchar* end= dest + length;
180 const wchar* end= str1 + cmpLength;
183 if( ( diff=
static_cast<int>( towupper(
static_cast<wint_t
>(*str1++)))
184 -
static_cast<int>( towupper(
static_cast<wint_t
>(*str2++))) ) != 0 )
191 const wchar* h= haystack;
194 const wchar* n= needles;
208 const wchar* h= haystack;
211 const wchar* n= needles;
244#if ALIB_CHARACTERS_NATIVE_WCHAR
247 xchar* end= dest + length;
254 const xchar* end= str1 + cmpLength;
257 if( ( diff=
static_cast<int>( towupper(
static_cast<wint_t
>(*str1++)))
258 -
static_cast<int>( towupper(
static_cast<wint_t
>(*str2++))) ) != 0 )
265 const xchar* h= haystack;
268 const xchar* n= needles;
282 const xchar* h= haystack;
285 const xchar* n= needles;
#define ALIB_WARNINGS_RESTORE
#define ALIB_ASSERT_ERROR(cond,...)
#define ALIB_WARNINGS_ALLOW_UNSAFE_BUFFER_USAGE
integer IndexOfAnyExcluded(const TChar *haystack, integer haystackLength, const TChar *needles, integer needlesLength)
integer IndexOfAnyIncludedZT(const TChar *haystack, const TChar *needles)
integer IndexOfAnyExcludedZT(const TChar *haystack, const TChar *needles)
integer IndexOfFirstDifference(const TChar *haystack, integer haystackLength, const TChar *needle, integer needleLength, lang::Case sensitivity)
void Reverse(TChar *src, integer length)
integer Length(const TChar *cstring)
integer LastIndexOfAnyInclude(const TChar *haystack, integer startIdx, const TChar *needles, integer needlesLength)
integer IndexOfAnyIncluded(const TChar *haystack, integer haystackLength, const TChar *needles, integer needlesLength)
integer LastIndexOfAnyExclude(const TChar *haystack, integer startIdx, const TChar *needles, integer needlesLength)
void Fill(TChar *dest, integer length, TChar value)
int CompareIgnoreCase(const TChar *lhs, const TChar *rhs, integer cmpLength)
Case
Denotes upper and lower case character treatment.
lang::integer integer
Type alias in namespace alib.