Helix Core is now P4. Product user interfaces will be updated soon. Learn more >>

C/C++ API Documentation | 2025.2

# StrBuf::operator <<( const char * )

Append a null-terminated string to a `StrBuf`. The string is logically appended to the string pointed to by the `StrBuf`'s `buffer`.

Virtual? | No |
Class | `StrBuf` |
Arguments | `const char *s` | (implied) pointer to the first byte of the null-terminated string
Returns | `StrBuf &` | reference of the `StrBuf`

## Notes

The `StrBuf`'s `length` is incremented by the number of bytes prior to the first null byte in the string.

If the memory for the `StrBuf`'s `buffer` is not large enough, new contiguous memory is allocated to contain the results of appending the null-terminated string. If new memory is allocated, the old memory is freed. Any memory allocated is separate from the memory for the string.

## Example

Copy

    #include &lt;iostream&gt;

    #include &lt;stdhdrs.h&gt;
    #include &lt;strbuf.h&gt;

    int main( int argc, char **argv )
    {
        char chars[] = "zy";
        StrBuf sb;

        sb.Set( "xyz" );

        cout &lt;&lt; "sb.Text() prior to sb &lt;&lt; chars returns ";
        cout &lt;&lt; "\"" &lt;&lt; sb.Text() &lt;&lt; "\"\n";
        cout &lt;&lt; "sb.Length() prior to sb &lt;&lt; chars returns ";
        cout &lt;&lt; sb.Length() &lt;&lt; "\n\n";

        sb &lt;&lt; chars;   // append char * to StrBuf

        cout &lt;&lt; "sb.Text() after sb &lt;&lt; chars returns ";
        cout &lt;&lt; "\"" &lt;&lt; sb.Text() &lt;&lt; "\"\n";
        cout &lt;&lt; "sb.Length() after sb &lt;&lt; chars returns ";
        cout &lt;&lt; sb.Length() &lt;&lt; "\n";
    }

Executing the preceding code produces the following output:

    sb.Text() prior to sb << chars returns "xyz"
    sb.Length() prior to sb << chars returns 3

    sb.Text() after sb << chars returns "xyzzy"
    sb.Length() after sb << chars returns 5

Your search for returned results