- 访问
- 遍历
- 不需修改:
for(auto c : s)
- 需要修改:
for(auto &c : s)
-
for(decltype(s.size()) i = 0; i < s.size( ); i++ )
- 访问某个字符
- 下标运算符:
str[pos]
,接收的参数类型为size::size_type
。返回“引用”,所以可以修改。越界结果不可预知
str.at(pos)
:会检查下标pos
是否有效
- 迭代器
- 转化为字符数组
- 获得子串
s.substr(pos)
:返回从pos开始的尾串。如果超出范围会抛出out_of_range异常
s.substr(pos,n)
:返回从pos开始,长度为n的子串。超出范围则返回剩余所有部分
- 修改
- 插入
s.append(str)
:在字符串末尾插入str指向的字符串
s.insert(pos,n,c)
:在pos之前插入n个字符c
s.insert(pos,cstr)
:在pos之前插入字符指针cstr指向的字符串
s.insert(pos1,s2,pos2,n)
:在s的pos1位置插入s2从pos2开始的n个字符
- 删除
s.erase(pos,n)
:从pos位置开始,删除n个字符,若n过大,则删完从pos开始的剩余字符
- 替换
s.replace(pos,n,str)
:将pos位置开始的n个字符删除,然后在pos位置处插入str指向的字符串
- 搜索
- 搜索成功返回
string::size_type
类型的下标;搜索失败返回string::npos
string::npos
:static变量,const string::size_type
类型,初始化为-1
。由于是一个unsigned类型,因此这个初始值意味着npos
等于任何string最大的可能大小
s.find(args)
:查找s中args
第一次出现的位置
s.rfind(args)
:在s中查找args中任何一个字符最后一次出现的位置(反向查找)
s.find_first_not_of(args)
:在s中查找第一个不在args中的字符
s.find_last_not_of(args)
:在s中查找最后一个不在args中的字符(反向查找)
- 比较
s.compare(args)
:可以传入字符串或字符指针,以及位置,长度等
- 数值转换
- 数值转字符串
to_string(val)
:val可以是任何算术类型
- 字符串转数字(
p
是size_t
类型变量,保存s
中第一个非数值字符的下标,默认为0
;b
表示转换所用的基数,默认为10
)
- 转成整形
stoi(s,p,b)
stol(s,p,b)
stoul(s,p,b)
stoll(s,p,b)
stoull(s,p,b)
- 转成浮点数
stof(s,p)
stod(s,p)
stold(s,p)