is_str_match_begin_of_word

 

Description

Check to see if a string is the start part of a word in a longer string.

Syntax

BOOL is_str_match_begin_of_word( LPCSTR lpcszStart, LPCSTR lpcsz, int * p_nIndex = NULL )

Parameters

lpcszStart
[input] start string
lpcsz
[input] string to search
p_nIndex
[output] the character index in lpcsz where lpcszStart was found, or -1 if not found.

Return

TRUE if a match is found, otherwise FALSE.

Examples

EX1

void is_str_match_begin_of_word_ex1()
{
        int index = 0;
        string substr = "Sur";
        // Change "Sur" to "ADD" or "/del" to see different result 
        bool bRet =is_str_match_begin_of_word(substr, "add/delete Surface x-axis", &index);
        if(bRet)
          printf(" \"%s\" is the start of a word and locates in string at the %d character \n",substr,index);
        else
          printf("Match failed \n");              
}

Remark

checks to see if lpcszStart is the start of of a 'word' in lpcsz. A word starts at the start or after a space, / or -, \t, \n, (, etc.

For the function 's input parameters ,lower case char in lpcszStart will match upper case char in lpcsz,however upper case char in lpcszStart will not match lower case char in lpcsz.So callers should make lpcszStart as lower case char sets to make function fully case insensitive.

If lpcsz = "word1 add/delete Surface x-axis", then "word", "add", "delete" "sur" "axis" "x" are all matching the start of a word in lpcsz,but "face" in "Surface" is not the start of a word, nor is "/delete" or "-axis". Also, "deLete" will not match because is_str_match_begin_of_word is not fully case insensitive.

See Also

is_str_match_begin

header to Include

origin.h

Reference