C++的string类常用函数
- s.assign() // 对字符串赋以新值
string s = "liulan";
s.assign("niupi");
- swap() // 交换两个字符串的内容
string s1 = "liulan";
string s2 = "gmy";
cout << s1 << " " << s2 << endl;
s2.swap(s1);
cout << s1 << " " << s2 << endl;
return 0;
- +=, s.append(), s.push_back() // 在尾部添加字符
string s1 = "liulan";
string s2 = "gmy";
string s = s1+s2;
cout << s << endl;
// s = "liulangmy"
- s.insert() // 插入字符
string s = "liulan";
s.insert(0,"gaomy");
// s = "gmyliulan"
- s.erase() // 删除字符
string s = "liulan";
s.erase(0,1);
//s = "iulan"
-
s.clear() // 删除全部字符
-
s.replace() // 替换字符
string s = " liulan";
s.replace(0,1,"gmy");
cout << s << endl;
-
+ // 串联字符串
-
==,!=,<,<=,>,>=,compare() // 比较字符串
-
size(),length() // 返回字符数量
-
max_size() // 返回字符的可能最大个数
-
s.empty() // 判断字符串是否为空
-
s.capacity() // 返回重新分配之前的字符容量
-
reserve() // 保留一定量内存以容纳一定数量的字符
-
[ ], at() // 存取单一字符
-
getline() // 从stream读取某值
-
<< // 将谋值写入stream
#include<iostream>
#include<string>
#include<cstring>
#include<sstream>
using namespace std;
int main(){
stringstream stream;
string s = "123";
stream << s;
int num ;
stream >> num;
cout << s << endl;
cout << num << endl;
return 0;
}
-
copy() // 将string的某值赋值为一个C_string
string s = “123”;
char* c =new char[10];
s.copy(c,2,0);
cout << s << endl;
cout << c << endl; -
c_str() // 返回一个指向正规C字符串(C_string)的指针 内容与本string串相同 有’\0’
法一:
string s = " liulan";
const char* c;
c = s.c_str();
//改变s时,c也会改变
法二:
#include<cstring>
char* c = new char[10];
strcpy(c,s.c_str());
法二更安全
-
data() // 将内容以字符数组形式返回 无’\0’
-
s.substr() // 返回某个子字符串
string s = " liulan";
string s1 = s.substr(0,3); -
begin() end() // 提供类似STL的迭代器支持
-
rbegin() rend() // 逆向迭代器
-
get_allocator() // 返回配置器