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

C/C++ API Documentation | 2025.1

# StrBuf::Append( const char *, int )

Append a string of a specified length 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 *buf` | pointer to the first byte of the string
| `int len` | length of the string
Returns | `void` |

## Notes

Exactly `len` bytes are appended to the `StrBuf` from the string. The `length` of the `StrBuf` is incremented by the `len` argument.

If the memory for the `StrBuf`'s `buffer` is not large enough, new memory to contiguously contain the results of appending the string of specified length is allocated. 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[] = "zyx";
        StrBuf sb;

        sb.Set( "xyz" );

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

        sb.Append( chars, 2 );   // append len bytes of char * to StrBuf

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

Executing the preceding code produces the following output:

Copy

    sb.Text() prior to sb.Append( chars, 2 ) returns "xyz"
    sb.Length() prior to sb.Append( chars, 2 ) returns 3

    sb.Text() after sb.Append( chars, 2 ) returns "xyzzy"
    sb.Length() after sb.Append( chars, 2 ) returns 5

Your search for returned results