strcspn()

Count the characters at the beginning of a string that aren't in a given character set

Synopsis:

#include <string.h>

size_t strcspn( const char* str,
                const char* charset );

Arguments:

str
The string that you want to search.
charset
The set of characters you want to look for.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The strcspn() function finds the length of the initial segment of the string pointed to by str that consists entirely of characters not from the string pointed to by charset. The terminating NUL character isn't considered part of str.

Returns:

The length of the initial segment.

Examples:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main( void )
{
    printf( "%d\n", strcspn( "abcbcadef", "cba" ) );
    printf( "%d\n", strcspn( "xxxbcadef", "cba" ) );
    printf( "%d\n", strcspn( "123456789", "cba" ) );
    
    return EXIT_SUCCESS;
}

produces the output:

0
3
9

Classification:

ANSI, POSIX 1003.1

Safety:
Cancellation point No
Interrupt handler Yes
Signal handler Yes
Thread Yes

See also:

memchr(), strchr(), strpbrk(), strrchr(), strspn(), strstr(), strtok(), strtok_r(), wcschr(), wcscspn(), wcspbrk(), wcsrchr(), wcsspn(), wcsstr(), wcstok()