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.
#include <wchar.h>
size_t wcscspn (const wchar_t *wstr1, const wchar_t
*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) == -1) {
perror("mbstowcs");
exit(EXIT_FAILURE);
}
/* Initialize the string */
if (mbstowcs(w_string, "jklmabcjklabcdehjklmno", STRING_SIZE) == -1) {
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