Display the capacity of a string
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str1("A");
string str2("B");
string str3("G");
string str4;
cout << " str1: " << str1 << endl;
cout << " str2: " << str2 << endl;
cout << " str3: " << str3 << "\n\n";
// Display the capacity of str1.
cout << "Capacity of str1: " << str1.capacity() << "\n\n";
return 0;
}
Display the maximum string length
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str1("A");
string str2("B");
string str3("G");
string str4;
cout << " str1: " << str1 << endl;
cout << " str2: " << str2 << endl;
cout << " str3: " << str3 << "\n\n";
// Display the maximum string length.
cout << "The maximum string length is: " << str1.max_size()
<< "\n\n";
return 0;
}
Display the size of a string
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str1("A");
string str2("B");
string str3("G");
string str4;
cout << " str1: " << str1 << endl;
cout << " str2: " << str2 << endl;
cout << " str3: " << str3 << "\n\n";
// Display the size of str1.
cout << "str1 contains " << str1.size() << " characters.\n";
return 0;
}
functions related to size and capacity
#include <iostream>
#include <string>
using namespace std;
void printStats( const string & );
int main()
{
string s;
cout << "Stats before input:\n";
printStats( s );
cout << "\n\nEnter a string: ";
cin >> s; // delimited by whitespace
cout << "The string entered was: " << s;
cout << "\nStats after input:\n";
printStats( s );
s.resize( s.length() + 10 );
cout << "\n\nStats after resizing by (length + 10):\n";
printStats( s );
cout << endl;
return 0;
}
void printStats( const string &str ){
cout << "capacity: " << str.capacity()
<< "\nmax size: " << str.max_size()
<< "\nsize: " << str.size()
<< "\nlength: " << str.length()
<< "\nempty: " << ( str.empty() ? "true": "false" );
}
Set the capacity of a string to 128.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str1("A");
string str2("B");
string str3("G");
string str4;
cout << " str1: " << str1 << endl;
cout << " str2: " << str2 << endl;
cout << " str3: " << str3 << "\n\n";
// Set the capacity of str4 to 128.
cout << "Setting the capacity of str4 to 128\n";
str4.reserve(128);
cout << "Capacity of str4 is now: " << str4.capacity() << "\n\n";
return 0;
}
string.size()
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string str1("Strings handling is easy in C++");
string::iterator p;
unsigned int i;
// use size()
for(i=0; i<str1.size(); i++)
cout << str1[i];
cout << endl;
return 0;
}
Strings handling is easy in C++
string size grows
#include <string>
#include <iostream>
using namespace std;
int main( ) {
string s = "";
string sr = "";
sr.reserve(9);
cout << "s.length = " << s.length( ) << "\n";
cout << "s.capacity = " << s.capacity( ) << "\n";
cout << "s.max_size = " << s.max_size( ) << "\n";
cout << "sr.length = " << sr.length( ) << "\n";
cout << "sr.capacity = " << sr.capacity( ) << "\n";
cout << "sr.max_size = " << sr.max_size( ) << "\n";
for (int i = 0; i < 20; ++i) {
if (s.length( ) == s.capacity( )) {
cout << "s reached capacity of " << s.length( )
<< ", growing...\n";
}
if (sr.length( ) == sr.capacity( )) {
cout << "sr reached capacity of " << sr.length( )
<< ", growing...\n";
}
s += "x";
sr += "x";
}
}
s.length = 0
s.capacity = 0
s.max_size = 1073741820
sr.length = 0
sr.capacity = 9
sr.max_size = 1073741820
s reached capacity of 0, growing...
s reached capacity of 1, growing...
s reached capacity of 2, growing...
s reached capacity of 3, growing...
s reached capacity of 4, growing...
s reached capacity of 5, growing...
s reached capacity of 6, growing...
s reached capacity of 7, growing...
s reached capacity of 8, growing...
s reached capacity of 9, growing...
sr reached capacity of 9, growing...
s reached capacity of 10, growing...
sr reached capacity of 10, growing...
s reached capacity of 11, growing...
sr reached capacity of 11, growing...
s reached capacity of 12, growing...
sr reached capacity of 12, growing...
s reached capacity of 13, growing...
sr reached capacity of 13, growing...
s reached capacity of 14, growing...
sr reached capacity of 14, growing...
s reached capacity of 15, growing...
sr reached capacity of 15, growing...
s reached capacity of 16, growing...
sr reached capacity of 16, growing...
s reached capacity of 17, growing...
sr reached capacity of 17, growing...
s reached capacity of 18, growing...
sr reached capacity of 18, growing...
s reached capacity of 19, growing...
sr reached capacity of 19, growing...
string.size(), string.length, string.capacity(), string.max_size()
#include <iostream>
using std::cout;
using std::endl;
using std::cin;
using std::boolalpha;
#include <string>
using std::string;
void display( const string & );
int main()
{
string string1;
cout << "Statistics before input:\n" << boolalpha;
display( string1 );
cout << "\n\nEnter a string: ";
cin >> string1; // delimited by whitespace
cout << "The string entered was: " << string1;
cout << "\nStatistics after input:\n";
display( string1 );
return 0;
}
void display( const string &stringRef )
{
cout << "capacity: " << stringRef.capacity() << "\nmax size: "
<< stringRef.max_size() << "\nsize: " << stringRef.size()
<< "\nlength: " << stringRef.length()
<< "\nempty: " << stringRef.empty();
}
Statistics before input:
capacity: 0
max size: 1073741820
size: 0
length: 0
empty: true
Enter a string: a string
The string entered was: a
Statistics after input:
capacity: 1
max size: 1073741820
size: 1
length: 1
empty: false"
Use string.length() to check the string"s size
#include <iostream>
#include <string> // include for C++ standard string class
using namespace std;
int main()
{
string stringA = "C++";
string stringB = "Is Cool";
cout << "Length of stringA = " << stringA.length() << endl;
cout << "Length of stringB = " << stringB.length() << endl;
return 0;
}
Length of stringA = 3
Length of stringB = 7