StrBuf::Terminate()
Null-terminate the string pointed to by the buffer
member
of a StrBuf
. The null byte is placed in the buffer at the
location indicated by the length
member.
Virtual? |
No |
|
Class |
||
Arguments |
None |
|
Returns |
|
Notes
Initialize the StrBuf
before calling Terminate()
.
The length
member of the StrBuf
is effectively
unchanged by Terminate()
.
Example
Terminate()
is defined
in strbuf.h
as follows:
void Terminate() { Extend( 0 ); --length; }
Terminate()
null-terminates the string by calling Extend( 0 )
, which
also increments the length
member; the length
is then decremented within Terminate()
, leaving it
unchanged.
See also
Example
#include <iostream> #include <stdhdrs.h> #include <strbuf.h> int main( int argc, char **argv ) { StrBuf sb; sb.Set( "xyzzy" ); cout << "Prior to sb.SetLength( 3 ) and sb.Terminate():\n"; cout << " sb.Length() returns " << sb.Length() << "\n"; cout << " sb.Text() returns \"" << sb.Text() << "\"\n\n"; sb.SetLength( 3 ); cout << "After sb.SetLength( 3 ) but prior to sb.Terminate():\n"; cout << " sb.Length() returns " << sb.Length() << "\n"; cout << " sb.Text() returns \"" << sb.Text() << "\"\n\n"; sb.Terminate(); // null-terminate the string at length cout << "After sb.SetLength( 3 ) and sb.Terminate():\n"; cout << " sb.Length() returns " << sb.Length() << "\n"; cout << " sb.Text() returns \"" << sb.Text() << "\"\n"; }
Executing the preceding code produces the following output:
Prior to sb.SetLength( 3 ) and sb.Terminate(): sb.Length() returns 5 sb.Text() returns "xyzzy" After sb.SetLength( 3 ) but prior to sb.Terminate(): sb.Length() returns 3 sb.Text() returns "xyzzy" After sb.SetLength( 3 ) and sb.Terminate(): sb.Length() returns 3 sb.Text() returns "xyz"