strcspn

From cppreference.com
< c‎ | string‎ | byte
Defined in header <string.h>
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"

Contents

[edit] 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

[edit] Return value

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

[edit] Example

#include <string.h>
#include <stdio.h>
 
int main(void)
{
    const char *string = "abcde312$#@";
    const char *invalid = "*$#";
 
    size_t valid_len = strcspn(string, invalid);
    if(valid_len != strlen(string))
       printf("'%s' contains invalid chars starting aa position %zu\n",
               string, valid_len);
}

Output:

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

[edit] References

  • C11 standard (ISO/IEC 9899:2011):
  • 7.24.5.3 The strcspn function (p: 368)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.21.5.3 The strcspn function (p: 331)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • 4.11.5.3 The strcspn function

[edit] See also

returns the length of the maximum initial segment that consists
of only the characters found in another byte string
(function)
(C95)
returns the length of the maximum initial segment that consists
of only the wide chars not found in another wide string
(function)
finds the first location of any character in one string, in another string
(function)
C++ documentation for strcspn