VMS Help
CRTL, wcsspn
*Conan The Librarian
|
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.
Format
#include <wchar.h>
size_t wcsspn (const wchar_t *wstr1, const wchar_t *wstr2);
wstr1
A pointer to a null-terminated wide-character string. If this
string 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 wcsspn function scans the wide characters in the wide-
character string pointed to by wstr1 until it encounters a
character not found in wstr2. The function returns the length of
the first segment of wstr1 formed by characters 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. 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) == (size_t)-1) {
perror("mbstowcs");
exit(EXIT_FAILURE);
}
/* Initialize the string */
if (mbstowcs(w_
string, "abcedjklmabcjklabcdehjkl", STRING_SIZE)
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