C++/String/string size
Содержание
string.size()
<source lang="cpp">
- 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++
*/ </source>
string size grows
<source lang="cpp">
- 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...
*/ </source>
string.size(), string.length, string.capacity(), string.max_size()
<source lang="cpp">
- 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
*/ </source>
Use string.length() to check the string"s size
<source lang="cpp">
- 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
*/ </source>