VMS Help
CRTL, wcscspn
*Conan The Librarian
|
Compares the characters in a wide-character string against a
set of wide characters. The function returns the length of the
initial substring that is comprised entirely of characters that
are not in the set of wide characters.
Format
#include <wchar.h>
size_t wcscspn (const wchar_t *wstr1, const wchar_t *wstr2);
wstr1
A pointer to a null-terminated wide-character string. If this is
a null string, 0 is returned.
wstr2
A pointer to a null-terminated wide-character string that
contains the set of wide characters for which the function will
search.
The wcscspn function scans the wide characters in the string
pointed to by wstr1 until it encounters a character found in
wstr2. The function returns the length of the initial segment of
wstr1 that is formed by characters not found in wstr2.
x The length of the segment.
#include <stdlib.h>
#include <stdio.h>
#include <wchar.h>
#include <string.h>
/* This test sets up 2 strings, buffer and w_string, and */
/* then uses wcscspn() to calculate the maximum segment */
/* of w_string, which consists entirely of characters */
/* NOT from buffer. */
#define BUFF_SIZE 20
#define STRING_SIZE 50
main()
{
wchar_t buffer[BUFF_SIZE];
wchar_t w_string[STRING_SIZE];
size_t result;
/* Initialize the buffer */
if (mbstowcs(buffer, "abcdefg", BUFF_SIZE) == (size_t)-1) {
perror("mbstowcs");
exit(EXIT_FAILURE);
}
/* Initialize the string */
if (mbstowcs(w_string, "jklmabcjklabcdehjklmno", STRING_SIZE)
perror("mbstowcs");
exit(EXIT_FAILURE);
}
/* Using wcscspn - work out the largest string in w_string */
/* which consists entirely of characters NOT from buffer */
result = wcscspn(w_string, buffer);
printf("Longest segment NOT found in w_string is: %d", result);
}
Running the example program produces the following result:
Longest segment NOT found in w_string is: 4