C++/String/string size

Материал из C\C++ эксперт
Перейти к: навигация, поиск

string.size()

<source lang="cpp">

  1. include <iostream>
  2. include <string>
  3. 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">

  1. include <string>
  2. 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">

  1. include <iostream>

using std::cout; using std::endl; using std::cin; using std::boolalpha;

  1. 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">

  1. include <iostream>
  2. 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>