注意
str = str + ‘a’ 和 str += ‘a’的效率不一样,前面是返回对象,后面是引用。用前面超时过..
- find rfind
返回字符或字符串出现的下标,不存在返回string::npos
find(char c, int pos = 0)// 从pos(可省略)开始向后找第一个出现的字符或字符串,返回位置
rfind(char c, int pos = 0) // 从pos(可省略)开始向前找第一个出现的字符或字符串,返回位置
- erase
s.erase(int pos, int sum) // 从pos删除sum个字符
- size() length() 返回字符串的长度
- append() 在字符串最后添加字符或字符串
- insert()
s.insert(int pos, str) //从pos插入字符串str
s.insert(int pos, str, int start, int sum) // 在pos插入str字符串的第start开始的sum个
s.insert(int pos, str, int sum) // 在pos插入str的前sum个
s.insert(int pos, int sum, char c) // 在pos插入sum个字符
- replace() 替换字符串
str.replace(int pos,int sum,str2); // 从pos的sum个字符串替换为str2
- swap()
string a = "adfaf";
string b = "adsfadf";
a.swap(b) == swap(a, b);
- substr() 返回子串
// 从pos返回sum个字符
string a = "asdadf";
cout << a.substr(int pos, int sum)
- stringiostream可以用于不同类型的拼接
// stringiostream可以用于不同类型的拼接
char a[] = "qwer";
int n = 123;
stringstream ss;
ss << n << a <<12.32;
cout << ss.str() << endl; //123qwer12.32
string t;
ss >> t; //错误写法:t << ss; stringstream始终放在前面
cout << t; //123qwer12.32 从stringiostram中读取是以空格、回车分隔
ss.str(""); //清空操作
}