Sample code for 30+ languages & platforms
Unicode C

StringBuilder GetBefore

Demonstrates the StringBuilder.GetBefore method.

The GetBefore method was added in Chilkat v9.5.0.77

Chilkat Unicode C Downloads

Unicode C
#include <C_CkStringBuilderW.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkStringBuilderW sb;
    BOOL removeFlag;
    const wchar_t *marker;
    const wchar_t *substr;

    success = FALSE;

    sb = CkStringBuilderW_Create();
    success = CkStringBuilderW_Append(sb,L"www.chilkatsoft.com");

    //  The GetBefore method returns the contents of the string up to but not including
    //  the marker string.  If the remove flag is TRUE, then both the returned string AND
    //  the marker are removed.
    removeFlag = FALSE;
    marker = L".";
    substr = CkStringBuilderW_getBefore(sb,marker,removeFlag);
    wprintf(L"substr = %s\n",substr);
    wprintf(L"sb contains: %s\n",CkStringBuilderW_getAsString(sb));

    //  Output:
    //  substr = www
    //  sb contains: www.chilkatsoft.com

    removeFlag = TRUE;
    substr = CkStringBuilderW_getBefore(sb,marker,removeFlag);
    wprintf(L"substr = %s\n",substr);
    wprintf(L"sb contains: %s\n",CkStringBuilderW_getAsString(sb));

    //  Output:
    //  substr = www
    //  sb contains: chilkatsoft.com

    //  If the marker is not found, and the removeFlag is TRUE,
    //  then the entire string is returned and the sb is cleared.
    //  For example:
    CkStringBuilderW_Clear(sb);
    CkStringBuilderW_Append(sb,L"111--222--333--444");
    marker = L"--";
    removeFlag = TRUE;
    while ((CkStringBuilderW_getLength(sb) > 0)) {
        substr = CkStringBuilderW_getBefore(sb,marker,removeFlag);
        wprintf(L"substr = %s, sb contains: %s\n",substr,CkStringBuilderW_getAsString(sb));
    }

    //  Output is:
    //  substr = 111, sb contains: 222--333--444
    //  substr = 222, sb contains: 333--444
    //  substr = 333, sb contains: 444
    //  substr = 444, sb contains: 


    CkStringBuilderW_Dispose(sb);

    }