Previous Page
Next Page


Searches a wide string for a wide character that is not in a given set

#include <wchar.h>
size_t wcsspn ( const wchar_t *s1 , const wchar_t *s2  );

The wcsspn( ) function returns the index of the first wide character in the string addressed by s1 that does not match any wide character in the string addressed by s2. In other words, the return value is length of the wide string segment addressed by s1 that contains only wide characters which are present in the wide string addressed by s2. If all of the wide characters in s1 are also contained in s2, then wcsspn( ) returns the index of s1's string terminator character, which is the same as wcslen(s1).


wchar_t wordin[256];
double val;
fputws( L"Enter a floating-point number, please:", stdout );
wscanf( L"%ls", wordin );
int index = wcsspn( wordin, L"+-0123456789eE." );
if ( index < wcslen( wordin ) )
  wprintf ( L"Sorry, but the character %lc is not permitted.\n",
           wordin[index] );
  swscanf( wordin, L"%lg", &val );
  wprintf( L"You entered the value %g\n", val );

See Also

wcscspn( ), wcschr( ), wcsrchr( ), wcsstr( ), wcspbrk( ), strspn( ), strcspn( ), strchr( ), strrchr( ), strstr( ), strpbrk( )

Previous Page
Next Page