std::strcspn(3)

NAME
std::strcspn - std::strcspn

Synopsis
   Defined in header <cstring>
   std::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 <cstddef>
 #include <cstring>
 #include <iomanip>
 #include <iostream>
 #include <string>
 int main()
 {
     std::string s = "abcde312$#@";
     const char* invalid = "*$#";
     const std::size_t valid_len = std::strcspn(s.c_str(), invalid);
     if (valid_len != s.size())
     {
         std::cout << std::quoted(s)
                   << " contains invalid chars starting at position "
                   << valid_len << '\n'
                   << std::string(valid_len + 1, '-') << "^\n";
     }
 }

Output:
 "abcde312$#@" contains invalid chars starting at position 8
 ---------^

See also
                 returns the length of the maximum initial segment that consists
   strspn of only the characters found in another byte string
                 (function)
                 returns the length of the maximum initial segment that consists
   wcscspn 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 occurrence of characters
   find_first_of (public member function of std::basic_string<CharT,Traits,Allocator>)
   C documentation for
   strcspn