[Previous] [Contents] [Index] [Next]

mbstrrchr()

Search backwards for a multibyte character in a string

Synopsis:

#include <photon/PhProto.h>

char *mbstrrchr( char const *string_base, 
                 char const *start_char, 
                 char const *mbchar,
                 int *count );

Description:

This function searches backwards from start_char to string_base (inclusive) for a multibyte character that matches mbchar. If such a match is found, count (if provided) is set to the number of multibyte characters the matching character is from the start of the search. For example, if mbchar matches the start_char character in string, count is set to 0. If mbchar matches the previous character in string, count is set to 1.

A pointer to the beginning of the matching character within string_base is returned. If no match is found, the function returns NULL and doesn't change count.

Note that start_char doesn't need to be on a character boundary.

Returns:

A pointer to the matched character, or NULL if none was found.

Examples:

Search from the end of a string for a match to the provided UTF-8 character:

#include <Pt.h>
main()
    {
    char string[] = "Hello there: äîòéü found"; 
    char mbchar[] = "é";
    int count;
    char *p;

    if( p = mbstrrchr( string, string + strlen( string ) - 1, 
                       mbchar, &count ) )
        printf( 
            "character found: \n%d characters from the end.\n",
            count );
        printf( "byte offset %d.\n", p - string );
    else
        printf( " Not found " );
    }

Classification:

Photon

Safety:
Interrupt handler No
Signal handler Yes
Thread Yes

See also:

mbstrchr(), mbstrnchr()


[Previous] [Contents] [Index] [Next]