string 常用相关操作
1. 声明与初始化
特殊的声明与初始化函数
str = "abcdef"
string s(str,stridx) //
将str内“
起始位置stridx
”的部分当作字符串的初值; stridx = 1; s = "bcdef";
string s(str,stridx,len) //将字符串str“始于位置stridx”最多长度为len的部分当作字符串的初值
string s(cstr) //将C字符串作为s的初值
string s(chars,len) //将C字符串前len个字符作为字符串s的初值// C字符串是前n个,string是从该位置开始
string s(num,c) //生成num个c字符
string s(beg,end) //以区间beg;end(不包含end)内的字符作为字符串s的初值
string s(beg,end) //以区间beg;end(不包含end)内的字符作为字符串s的初值
2.操作
尾部:
+=,append(),push_back() //
在尾部添加字符
size(),length() //返回字符数量 // strlen是对Cstring操作的,遇到\0结束;
取值:
Str[3]; //ok
Str.at(3); //ok at会检测范围
Str.at(3); //ok at会检测范围
Str[100]; //未定义的行为
Str.at(100); //throw out_of_range
Str.at(100); //throw out_of_range
赋值:
s.assign(str,2,string::npos);//把字符串str从索引值2开始到结尾赋给s
插入:
s.insert(index,"hebinbin"); // 在索引index后面插入字符串
替代:
s.replace(index, num, "hebinbin"); // 索引index后面的num个替换成后面的Cstring
提取子string:
s.substr();//返回s的全部内容
s.substr(11);//从索引11往后的子串
s.substr(5,6);//从索引5开始6个字符
s.substr(11);//从索引11往后的子串
s.substr(5,6);//从索引5开始6个字符
查找与搜索:
find()
rfind() // 反向查找
find_first_of()
find_last_of()
find_first_not_of() // 找到第一个不匹配的索引位置
find_last_not_of()
rfind() // 反向查找
find_first_of()
find_last_of()
find_first_not_of() // 找到第一个不匹配的索引位置
find_last_not_of()
查找可以是精确查找也可以是指定起始位置查找,
返回值都是:string::size_type;
如果没有找到则返回-1即 string::npos或是s.nops;