Compares the characters in a wide-character string against a set of wide characters. The function returns the length of the first substring comprised entirely of characters in the set of wide characters.
#include <wchar.h> size_t wcsspn (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. It then uses */ /* wcsspn() to calculate the maximum segment of w_string that consists */ /* entirely of characters 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, "abcedjklmabcjklabcdehjkl", STRING_SIZE) == -1) { perror("mbstowcs"); exit(EXIT_FAILURE); } /* Using wcsspn - work out the largest string in w_string that */ /* consists entirely of characters from buffer */ result = wcsspn(w_string, buffer); printf ("Longest segment found in w_string is: %d",result); }
Running the example program produces the following result:
Longest segment found in w_string is: 5