转自: C++中的String的常用函数用法总结_string函数-CSDN博客
一、string的构造函数
string s("123456789");
auto s2(s,0,2); // 从第0位开始取s的两位赋值给s2
auto s3(s,5); // 从第5位即“6”开始到结尾赋值给s3
auto s4("123456",3); // 从第0位开始取3位赋值给s4
auto s5(3,'f'); // s5 = "fff";
auto s6 = s.substr(1,3); // 从s的第1位开始获取长度为5的字符串
二、string的大小及容量相关函数
int size(); // str.size(); | 返回字符串str中的字符个数 |
int length(); //str.length(); | 返回字符串str中的字符个数 |
int max_size(); // str.size(); | 返回string对象最多包含的字符个数,因设备不同而异 |
capacity(); // str.capacity(); | 重新分配内存之前,string对象能包含的最大字符数 |
三、string的比较
">" "<" "==" ">=" "<=" // str1 > str2 | 根据str1和str2的字符从前往后比较, |
int compare(); // str1.compare(str2) | 返回 0(等于)1(大于)-1(小于) |
strcmp(str1,str2); | 需要包含cstring头文件 |
四、string的查找
1. size_t find (constchar* s, size_t pos = 0) const;
//在当前字符串的pos索引位置开始,查找子串s,返回找到的位置索引,
-1表示查找不到子串
2. size_t find (charc, size_t pos = 0) const;
//在当前字符串的pos索引位置开始,查找字符c,返回找到的位置索引,
-1表示查找不到字符
3. size_t rfind (constchar* s, size_t pos = npos) const;
//在当前字符串的pos索引位置开始,反向查找子串s,返回找到的位置索引,
-1表示查找不到子串
4. size_t rfind (charc, size_t pos = npos) const;
//在当前字符串的pos索引位置开始,反向查找字符c,返回找到的位置索引,-1表示查找不到字符
5. size_tfind_first_of (const char* s, size_t pos = 0) const;
//在当前字符串的pos索引位置开始,查找子串s的字符,返回找到的位置索引,-1表示查找不到字符
6. size_tfind_first_not_of (const char* s, size_t pos = 0) const;
//在当前字符串的pos索引位置开始,查找第一个不位于子串s的字符,返回找到的位置索引,-1表示查找不到字符
7. size_t find_last_of(const char* s, size_t pos = npos) const;
//在当前字符串的pos索引位置开始,查找最后一个位于子串s的字符,返回找到的位置索引,-1表示查找不到字符
8. size_tfind_last_not_of (const char* s, size_t pos = npos) const;
//在当前字符串的pos索引位置开始,查找最后一个不位于子串s的字符,返回找到的位置索引,-1表示查找不到子串
五、其他各种函数
函数名 | 用法 | 功能 |
push_back() | str1.push_back('a'); | 在str1尾部插入字符‘a’ |
insert() | str1.insert(s1.begin()+1,'a') | 在str1的第二个字符前插入‘a' |
append() | str1.append("a") | 在str1字符串后添加字符串“a” |
+ | str1 += "a" | 在str1字符串后添加字符串“a” |
erase() | str1.erase(iterator p) | 删除字符串中 p所指的字符 |
str1.erase(iterator it1,iterator it2) | 删除从it1所指的字符到it2所指的前一个 [it1 it2) | |
str1.erase(size_t pos, size_t len = n) | 删除字符串从索引pos开始的n个字符 | |
clear() | str.clear() | 删除所有字符 |
replace() | str1.replace(size_t p, size_t n, string str2) | 从索引p开始替换n个字符 |
tolower() touopper() | transform(str1.begin(),str1.end(), s.begin(),::tolower) | 与transform结合实现大小写转化 |
sort() | sort(str1.begin(),str1.end()) | 从小达大排序 |