Sample code for 30+ languages & platforms
C

StringBuilder GetBefore

Demonstrates the StringBuilder.GetBefore method.

The GetBefore method was added in Chilkat v9.5.0.77

Chilkat C Downloads

C
#include <C_CkStringBuilder.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkStringBuilder sb;
    BOOL removeFlag;
    const char *marker;
    const char *substr;

    success = FALSE;

    sb = CkStringBuilder_Create();
    success = CkStringBuilder_Append(sb,"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 = ".";
    substr = CkStringBuilder_getBefore(sb,marker,removeFlag);
    printf("substr = %s\n",substr);
    printf("sb contains: %s\n",CkStringBuilder_getAsString(sb));

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

    removeFlag = TRUE;
    substr = CkStringBuilder_getBefore(sb,marker,removeFlag);
    printf("substr = %s\n",substr);
    printf("sb contains: %s\n",CkStringBuilder_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:
    CkStringBuilder_Clear(sb);
    CkStringBuilder_Append(sb,"111--222--333--444");
    marker = "--";
    removeFlag = TRUE;
    while ((CkStringBuilder_getLength(sb) > 0)) {
        substr = CkStringBuilder_getBefore(sb,marker,removeFlag);
        printf("substr = %s, sb contains: %s\n",substr,CkStringBuilder_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: 


    CkStringBuilder_Dispose(sb);

    }