C++ string常用接口

substr
string s = "abcdefg";
string s2 = s.substr(1, 5); //s2 = "bcdefg", 从index 1向后截取5个字符
string s3 = s.substr(4); //s3 = "efg", 从index 4截取到尾部
insert
string s = "1234567";
string s2 = "abcdefg";
s.insert(2, s2); //s = "12abcdefg34567", 在index 2之前插入s2
s.insert(4, s2, 2, 3); //s = "1234cde567", 在index 4之前插入s2.substr(2, 3)
s.insert(5, s2, 5); //s = "12345fg67", 在index 5之前插入s2.substr(5);
s.insert(3, 4, "a"); //s = "123aaaa4567", 在index 3之前插入4个a
erase
string str = "abcdefg 1234567";
str.erase(6, 4); // str = "abcdef34567", 从index 6开始,删除四个字符
replace
string s = "abcdefg";
string s2 = "1234567";
s.replace(3, 2, s2); //s = "abc1234567fg", 从index 3开始,将后面的2个字符替换为s2
s.replace(4, 2, s2, 1, 4); //s = "abcd2345g", 从index 4开始,将后面的2个字符替换为s2.substr(1, 4)
assign
string str;
str.assign("abcdefghijkl", 6); //str = "abcdef", 将前六个字符赋值给str
str.assign("abcdefghijkl", 6, 5); //str = "ghijk", 将从index 6开始的5个字符赋给str
str.assign(10, 'a'); //str = "aaaaaaaaaa", 给str赋值10个a
find/rfind

find是第一个匹配,rfind是最后一个匹配

string str = "abcdefg";
string sub = "cde";
size_t found = str.find(sub);
size_t found2 = str.find(sub, found+1);
if (found == string::npos) {
    //没有找到
}
compare
string s1 = "123";
string s2 = "123";
s1.compare(s2); //0
s1 = "1234";
s1.compare(s2); //1
s2 = "12345";
s1.compare(s2); //-1
s1.compare(0, 3, "123"); //0, 比较s1从index 0开始的三个字符和参数
数值转换
int val = 100;
string str = to_string(val); //s = "100", 将val转为string
int val2 = stoi(str, 0, 10); //val2 = 100, 将str从0开始的位置转为10进制int
// 类似的还有stof, stod...
大小写
string s = "abCdE";
islower(s[1]); //isupper()
s[3] = toupper(s[1]); //tolower()
isalpha(int c); //判断是不是字母
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容