C++ Tutorial/string/string size
Версия от 14:21, 25 мая 2010; (обсуждение)
Содержание
- 1 Display the capacity of a string
- 2 Display the maximum string length
- 3 Display the size of a string
- 4 functions related to size and capacity
- 5 Set the capacity of a string to 128.
- 6 string.size()
- 7 string size grows
- 8 string.size(), string.length, string.capacity(), string.max_size()
- 9 Use string.length() to check the string"s size
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;
}
#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