Middleware, development tools, realtime operating system
software and services for superior embedded design


Home
QNX Community Resources
Developer Support
QNX Documentation Library
QNX Developer Support

QNX Developer Support

QNX Software Systems
Developer Resources
Blogs
Board support packages
Foundry27 projects
Forums
Hardware support listing
Online video tutorials
Product documentation
Technical Articles

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

utf8strrchr()

Search backwards for a UTF-8 character in a string

Synopsis:

#include <utf8.h>

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

Arguments:

string_base
A pointer to the beginning of the string to search.
start_char
A pointer to the character in the string from which to search.
mbchar
The character to look for.
count
A pointer to the location where utf8strrchr() stores the number of UTF-8 characters the matching character is from the start of the search.

Library:

ph

Description:

This function searches backwards from start_char to string_base (inclusive) for a UTF-8 character that matches mbchar. If such a match is found, count (if provided) is set to the number of UTF-8 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>

int main()
    {
    char string[] = "Hello there: äîòéü found"; 
    char mbchar[] = "é";
    int count;
    char *p;

    if( (p = utf8strrchr( 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.\n" );
    }

Classification:

Photon

Safety:
Interrupt handler No
Signal handler Yes
Thread Yes

See also:

utf8strchr(), utf8strichr(), utf8strnchr(), utf8strnichr(), utf8strirchr()

Unicode Multilingual Support in the Photon Programmer's Guide


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