StrBuf::Extend( char )
Extend a StrBuf
by one byte. The string pointed to by the
StrBuf
's buffer
is logically extended.
Virtual? |
No |
|
Class |
||
Arguments |
|
the byte copied to the extended string |
Returns |
|
Notes
One byte is copied to the extended StrBuf
. The
length
of the StrBuf
is incremented by one.
Extend()
does not
null-terminate the extended string pointed to by the
StrBuf
's buffer
. To ensure that the extended
string is null-terminated, call Terminate()
after calling
Extend()
.
If the memory for the StrBuf
's buffer
is not
large enough, enough new memory is allocated to contiguously contain the
extended string. If new memory is allocated, the old memory is freed. Any
memory allocated is separate from the memory for the byte.
See also
Example
#include <iostream> #include <stdhdrs.h> #include <strbuf.h> int main( int argc, char **argv ) { StrBuf sb; sb.Set( "xy" ); cout << "sb.Text() prior to sb.Extend( 'z' ) returns "; cout << "\"" << sb.Text() << "\"\n"; cout << "sb.Length() prior to sb.Extend( 'z' ) returns "; cout << sb.Length() << "\n\n"; sb.Extend( 'z' ); // extend StrBuf from char sb.Terminate(); cout << "sb.Text() after sb.Extend( 'z' ) returns "; cout << "\"" << sb.Text() << "\"\n"; cout << "sb.Length() after sb.Extend( 'z' ) returns "; cout << sb.Length() << "\n"; }
Executing the preceding code produces the following output:
sb.Text() prior to sb.Extend( 'z' ) returns "xy" sb.Length() prior to sb.Extend( 'z' ) returns 2 sb.Text() after sb.Extend( 'z' ) returns "xyz" sb.Length() after sb.Extend( 'z' ) returns 3