VMS Help  —  CRTL  wcsrchr
    Scans for the last occurrence of a wide character in a given
    string.

    Format

      #include  <wchar.h>

      wchar_t *wcsrchr  (const wchar_t *wstr, wchar_t wc);

1  –  Function Variants

    The wcsrchr function has variants named _wcsrchr32 and _wcsrchr64
    for use with 32-bit and 64-bit pointer sizes, respectively.

2  –  Arguments

 wstr

    A pointer to a null-terminated wide-character string.

 wc

    A character of type wchar_t.

3  –  Description

    The wcsrchr function returns the address of the last occurrence
    of a given wide character in a null-terminated wide-character
    string. The terminating null character is considered to be part
    of the string.

    See also wcschr.

4  –  Return Values

    x                  The address of the last occurrence of the
                       specified wide character.
    NULL               Indicates that the wide character does not
                       occur in the string.

5  –  Example

        #include <stdlib.h>
        #include <stdio.h>
        #include <wchar.h>
        #include <string.h>

        #define BUFF_SIZE 50
        #define STRING_SIZE 6

        main()
        {
            int i;
            wchar_t s1buf[BUFF_SIZE],
                    w_string[STRING_SIZE];
            wchar_t *status;
            wchar_t *pbuf = s1buf;

            /* Initialize the buffer */

            if (mbstowcs(s1buf, "hijklabcdefg ytuhijklfedcba", BUFF_SIZE)

                perror("mbstowcs");
                exit(EXIT_FAILURE);
            }

            /* Initialize the string to be searched for */

            if (mbstowcs(w_string, "hijkl", STRING_SIZE) == (size_t)-1) {

                perror("mbstowcs");
                exit(EXIT_FAILURE);
           }

        /* This program checks the wcsrchr function by searching for */
        /* the last occurrence of a string in the buffer s1buf and   */
        /* prints out the contents of s1buff from the location of
        /* the string found.                                         */

            status = wcsrchr(s1buf, w_string[0]);
        /* Check for pointer to start of rightmost character string. */
            if (status == pbuf) {
                printf("Error in wcsrchr\n");
                exit(EXIT_FAILURE);
            }

            printf("Program completed successfully\n");
            printf("String found : [%S]\n", status);

        }

      Running the example produces the following result:

        Program completed successfully
        String found : [hijklfedcba]
Close Help