xref: /reactos/sdk/lib/ucrt/string/wcscspn.cpp (revision fe11f7a2)
1 //
2 // wcscspn.cpp
3 //
4 //      Copyright (c) Microsoft Corporation.  All rights reserved.
5 //
6 // Defines wcscspn(), which searches a string for an initial substring that does
7 // not contain any of the specified control characters.
8 //
9 // This function returns the index of the first character in the string that
10 // belongs to the set of characters specified by 'control'.  This is equivalent
11 // to the length of the initial substring of 'string' composed entirely of
12 // characters that are not in 'control'.
13 //
14 #include <string.h>
15 
16 
17 
18 extern "C" size_t __cdecl wcscspn(
19     wchar_t const* const string,
20     wchar_t const* const control
21     )
22 {
23     wchar_t const* string_it = string;
24     for (; *string_it; ++string_it)
25     {
26         for (wchar_t const* control_it = control; *control_it; ++control_it)
27         {
28             if (*string_it == *control_it)
29             {
30                 return static_cast<size_t>(string_it - string);
31             }
32         }
33     }
34 
35     return static_cast<size_t>(string_it - string);
36 }
37