一、首先看看string和wstring类的定义:
- typedef basic_string<char, char_traits<char>, allocator<char> > string;
- typedef basic_string<wchar_t, char_traits<wchar_t> allocator<wchar_t> > wstring;
从这个定义可以看出string和wstring分别是模板类basic_string对char和wchar_t的特化。
二、append使用
#include <iostream>
#include <string>
using namespace std;
void main()
{
string str="hello world";
string::const_iterator const_it=str.begin();
str.append(const_it,const_it+5);
cout<<str<<endl;
str="hello world";
const char* p="sunshine";
str.append(p,p+3);
cout<<str<<endl;
str="hello world";
str.append(str.begin(),str.end());
cout<<str<<endl;
str="hello world";
str.append(3,'A');
cout<<str<<endl;
str="hello world";
p="love";
str.append(p);
cout<<str<<endl;
str="hello world";
p="helpful";
str.append(p,4);
cout<<str<<endl;
str="hello world";
string strr("badly");
str.append(strr,1,3);
cout<<str<<endl;
str="hello world";
strr="badly";
str.append(strr);
cout<<str<<endl;
system("pause");
}
三、shrink_to_fith函数
#include <iostream>
#include <string>
using namespace std;
void main()
{
std::string str (100,'x');
std::cout << "1. capacity of str: " << str.capacity() << '\n';
str.resize(10);
std::cout << "2. capacity of str: " << str.capacity() << '\n';
str.shrink_to_fit();
std::cout << "3. capacity of str: " << str.capacity() << '\n';
system("pause");
}
四、erase函数
#include <string>
#include <iostream>
using namespace std;
int main()
{
string a = "hello 123";
a.erase(a.begin(), a.begin() + 5);
cout << a << endl;
string b = "hello 123";
b.erase(b.begin()+5);
cout << b << endl;
string c = "hello 123";
c.erase(0,5);
cout << c << endl;
string d = "hello 123";
d.erase(6);
cout << d << endl;
return 0;
}
五、find函数
#include <string>
#include <iostream>
using namespace std;
int main()
{
string a = "hello 123";
cout << a.find('2') << endl;
cout << a.find("123")<<endl;
cout << a.find("125", 0, 2) << endl;
return 0;
}
六:insert函数
#include <string>
#include <iostream>
using namespace std;
int main()
{
string a = "hello 123";
a.insert(2, 1, 'A');
a.insert(2, "456");
a.insert(a.begin() + 2, 'B');
a.insert(2, "A");
a.insert(2, "456", 3);
cout << a << endl;
return 0;
}
参考文献:标准C++中的string类的用法总结
http://blog.youkuaiyun.com/piaopiaopiaopiaopiao/article/details/39293723