C++/String/string size
Содержание
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
*/