C++的string用法详解,涉及增删改查及其常用方法,一篇就够了!!!

该篇博客持续更新,喜欢的话点赞收藏加关注吧~

1 初始化

// 头文件
#include <string>
// 1、直观的初始化
string str="hello"; // 'hello'
string str2("world"); // 'world'
// 2、批量初始化
// 第二个参数为char型(注意是''而不是""!!!)
string str(3,'h'); // 'hhh'
// 3、通过其他字符串初始化
// 假设字符串str为"coding"
string str2(str,1); // 'oding',从索引1开始截取到最后
string str3(str,1,3); // 'odi',从索引1开始截取3个字符

2 常用方法

2.1 增

2.1.1 push_back()

// 假设字符串 str 为 "aaa"
str.push_back('b'); // str 变为 "aaab"

2.1.2 insert()

// 假设字符串 str 为 "aaa"
// 在指定位置添加字符
str.insert(++str.begin(),'b'); // "abaa",先在索引1插入'b'
str.insert(str.begin(),'b'); // "babaa",接着在索引0插入'b'

2.2 删

2.2.1 clear()

// 假设str为"aaa"
str.clear(); // 将str清空

2.2.2 erase()

// 假设str为"coding"
str.erase(str.begin()+1,str.begin()+3); // 从索引1开始删除(3-1)个字符
// 删除'od',str变为"cing"

//--------------------------------

// 假设str2为"coding"
str2.erase(str.begin()+1); // 删除索引为1的字符(单个)
// 删除'o',str变为"cding"

2.3 改

2.3.1 append()

// 假设str为"aaa"
str.append("bbb"); // str变为"aaabbb"

2.3.2 tolower()和toupper()

string str="aba";
for(int i=0;i<str.size();i++) { // 循环结束str变为"ABA"
    str[i]=toupper(str[i]);
}
for(int i=0;i<str.size();i++) { // 循环结束str变为"aba"
    str[i]=tolower(str[i]);
}

2.4 查

2.4.1 size()和length()

// 假设 str 为 "coding"
str.size(); // 返回字符串长度 6
str.length(); // 与上相同 6

2.4.2 empty()

str.empty(); // str为空返回true,不为空返回false

2.4.3 find()

string s("hello everyone");
// 1. 查找字符串,返回该字符串第一个字符下标
s.find("every"); // 返回 6
// 2. 查找字符
s.find("e"); // 返回 1 (返回第一个索引)
s.find("e",2); // 返回6 (返回指定索引2后面的第一个索引)
// 3. 反向查找字符串,返回该字符串第一个字符下标
s.rfind("every"); // 返回 6
// 4. 查找字符
s.rfind("e"); // 返回 13 (返回反向第一个索引)
s.rfind("e",2); // 返回1 (返回指定索引2往左的第一个索引)

3 其他方法

3.1 截取字符串

string s1("abcdef");
string s2=s1.substr(2); // 从索引2开始截取,"cdef"
string s3=s1.substr(2,3); // 从索引2开始截取,长度为3,"cde"

3.2 整数型和字符串相互转化

// 1、字符串转化为整数
string str("123");
int num=stoi(str); // 整数num为 123

// 2、整数转化为字符串
int num2=234;
string str2=to_string(num2); // 字符串str2为 "234"

3.3 读入整行字符(包含空格)

string str;
getline(cin,str); // 可以从终端输入整行字符,可以包含空格

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值