Search backwards for a multibyte character in a string
#include <photon/PhProto.h> char *mbstrrchr( char const *string_base, char const *start_char, char const *mbchar, int *count );
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.
A pointer to the matched character, or NULL if none was found.
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 " ); }
Photon
Safety: | |
---|---|
Interrupt handler | No |
Signal handler | Yes |
Thread | Yes |