# std::strcspn

From cppreference.com
< cpp‎ | string‎ | byte

Defined in header `<cstring>` |  |
size_t strcspn( const char *dest, const char *src ); |  |

Returns the length of the maximum initial segment of the byte string pointed to by `dest`, that consists of only the characters not found in byte string pointed to by `src`.

The function name stands for "complementary span"

### Parameters

dest | - | pointer to the null-terminated byte string to be analyzed
src | - | pointer to the null-terminated byte string that contains the characters to search for

### Return value

The length of the maximum initial segment that contains only characters not found in the byte string pointed to by `src`

### Example

Run this code

    #include <string>
    #include <cstring>
    #include <iostream>

    const char* invalid = "*$#";
    int main()
    {
        std::string s = "abcde312$#@";

        size_t valid_len = std::strcspn(s.c_str(), invalid);
        if(valid_len != s.size())
           std::cout << "'" << s << "' contains invalid chars starting at position "
                     << valid_len << '\n';
    }

Output:

    'abcde312$#@' contains invalid chars starting at position 8

### See also

strspn | returns the length of the maximum initial segment that consists of only the characters found in another byte string (function)
wcscspn | returns the length of the maximum initial segment that consists of only the wide not found in another wide string (function)
strpbrk | finds the first location of any character from a set of separators (function)
find_first_of | find first occurrence of characters (public member function of `std::basic_string<CharT,Traits,Allocator>`)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/string/byte/strcspn&oldid=85092"