2014年01月18日 星期六 23:45
C-style string对于初学者来说,非常难以理解和正确使用。很多C++语言的教材都尽量避免涉及C-style string,而是直接讲解C++标准库的string数据类型。C++标准库的string非常直观和容易使用,API非常丰富,代码示例如下:
#include <iostream>
#include <string>
#include <cstdio>
using namespace std;
int main() {
string s1;
string s2("a simple string");
string s3="another simple string";
string s4(s3);
string s5(s3,8,13);
string s6(8,'a');
cout << s1 << endl << s2 << endl << s3 << endl;
cout << s4 << endl << s5 << endl << s6 << endl;
for(auto s : s3 ) {
cout << s << " ";
}
cout << endl;
cout << "size of s3: " << s3.size() << endl;
cout << "max size of s3: " << s3.max_size() << endl;
cout << "capacity of s3: " << s3.capacity() << endl;
s3.append(".");
cout << "now capacity of s3: " << s3.capacity() << endl;
s3.reserve(100);
cout << "now capacity of s3: " << s3.capacity() << endl;
s3.clear();
cout << "now capacity of s3: " << s3.capacity() << endl;
cout << "s3 is empty? " << s3.empty() << endl;
s3.shrink_to_fit();
cout << "now capacity of s3: " << s3.capacity() << endl;
s3=s2;
cout << "first character: " << s3[0] << endl;
cout << "first character: " << s3.at(0) << endl;
cout << "first character: " << s3.front() << endl;
cout << "last character: " << s3.back() << endl;
s3+=", yeah";
s3.push_back('.');
s3.pop_back();
printf("s3: %s\n",s3.c_str());
cout << "please input your name:" ;
getline(cin,s3);
cout << "Hello, " << s3 << endl;
auto p=s2.find("simple");
s2.replace(p,6,"complex");
cout << s2 << endl;
s2.erase(p,7);
cout << s2 << endl;
}
参考资料:
Zeuux © 2025
京ICP备05028076号