在C++里熟练使用String的前提是:忘掉char[]。
字符串的初始化
string str(str1,int pos_a, int len);
直接将str1的pos_a开始的len长度子串赋值过去。
不指定pos的话默认复制完整的str1.
str1也不指定的话,默认为空。
另一种形式是:
string(int n,char c);
直接初始化为n个c;(那我用memset也会有类似的效果)
另外,str.assign()和string str的效果是一样的。
字符串的拼接
string类可以大胆使用+和+=这样的内建运算。
append也可以,用法可以理解为
str.append(str2);
str+=string str2();
替换
string.replace(int pos_a,int len b,string str)
这里的str参照初始化的参数和append的参数想象
插入、替换、拼接本质上是非常类似的操作
insert本质也只是将""替换为待插入的字符串而已。
字符串的截取
substr(int pos_a,int len).
字符串的擦除
string.erase(int pos_a,int len b)
与substr类似。如果没有b的话,pos_a之后全部擦除。
字符串的遍历
如果使用下标遍历,就会发现。。。跟char[]一毛一样啊!!!
但通常的做法是 string.begin()和end()。
就,他是内建有迭代器的。
以sort为例,正常的char[]操作是
sort(a,a+strlen(a))//当然这样也可以用在string里
但是如果有string处理,
sort(str.begin(),str.end())
字符串的查找
有很多find,字符、字符数组、字符串都可以找。
find:第一次出现的位置(跟find_first_of一样)
rfind:最后一次出现的位置(跟 find_last_of一样)
网友评论