string类型
一、查找
string str="…";
//普通类
- find(" "); //返回字符串 " " 在 str 的位置;
- find(" ", x); //在 str[x]~str[n-x] **(x<n,下同)**范围内查找并返回字符串 " " 在 str 的位置;
- rfind(" ", x); //在 str[0]~str[x] 范围内查找并返回字符串 " " 在 str 的位置;
//first 类 - find_first_of(" "); //返回 " " 中任何一个字符首次在 str 中出现的位置;
- find_first_of(" ", x);//返回 " " 中任何一个字符首次在 str[x]~str[n-1] 范围中出现的位置;
- find_first_not_of(" ");//返回除 " " 以外的任何一个字符在 str 中首次出现的位置;
- find_first_not_of(" ", x);//返回除 " " 以外的任何一个字符在 str[x]~str[n-1] 范围中首次出现的位置;
//last 类 - find_last_of(" ");//返回 " " 中任何一个字符最后一次在 str 中出现的位置;
- find_last_of(" ", x);//返回 " " 中任何一个字符最后一次在 str[0]~str[x] 范围中出现的位置;
- find_last_not_of(" ");//返回除 " " 以外的任何一个字符在 str 中最后一次出现的位置;
- find_last_not_of(" ", x);//返回除 " " 以外的任何一个字符在 str[0]~str[x] 范围中最后一次出现的位置;
以上如果没有找到相对应的字符,均返回string::npos
例:
所以由上述举例我的结论有
在普通类中:
if(给出字符在定义的字符串中有多个)
{返回的将是第一个出现的位置;}
if(给一个字符串) //注:给出字符串在定义字符串中要是连续的,若不连续将返回string::npos;
{返回给出字符串第一个字符第一次出现在定义的字符串中的位置;}
first 、last类中按规则利用其函数就好了
理解记忆x表示的范围:在普通类的rfind和last类里x表示{x之前包括x在内的范围}(注:x可以不小于n,不过就起不到限制的作用);在firts类里x表示{x之后包括x到定义的字符串最后一个位置的范围}(这里的x要小于n,否则就相当于在一个什么都没有的字符串里查找);find里x表示{x到n-x}(注:这里的x不一定小于n-x,只要x小于等于给出字符串第一个字符的位置就能找到给出字符串的位置)。
二、运算符重载
- “+”、“+=”:连接多个字符串;
- “=”:给字符串赋值;
- “<”、“<=”、“>”、“>=”:字符串的比较;
- “==”、“!=”:判断字符串是否相等;
例:
说明:不建议大家 以’cd’这样的形式出现在程序中,这里只是为了说明比较也可以在字符以及字符串之间进行,不仅仅在数字之间;代码规范化,时间少一半。
注意:使用重载的运算符 + 时,必须保证前两个操作数至少有一个为 string 类型。例如,下面的写法是不合法的:
三、子串
- substr(x);//返回[x]及以后的子字符串
- substr(x,y);//返回[x]~[x+(y-1)]的子字符串(即从[x]开始的y个连续字符组成的字符串)
四、替换
- replace(x,y,“hello”);//返回把 [x]~[x+(y-1)] 的内容替换为 “hello” 后的新字符串
- replace(x, y, “abcd”, z); //返回把 [x]~[x+(y-1)] 的内容替换为 “abcd” 的前z个字符后的新字符串
五、插入
- insert(x, “hello”); //从 [x] 位置开始添加字符串 “hello”,并返回形成的新字符串
- insert(x, “hello”, y); //从 [x] 位置开始添加字符串 “hello” 的前 y个字符,并返回形成的新字符串
- insert(x, “hello”, y, z); //从 [x] 位置开始添加字符串 “hijklmn” 的 [y]位置开始的 z 个连续字符 (包括 [y] 在内),并返回形成的新字符串
六、添加
除了用重载的 “+” 操作符,还可以使用函数来完成。
append(“abc”); //在字符串末尾添加字符串"abc",并返回形成的新字符串
七、删除
- erase(x); //删除 [x] 及其以后的字符,并返回形成的新字符串
- erase(x, y); //删除从 [x] 开始的 y 个字符,并返回形成的新字符串
八、其他
- size(); //返回字符串长度
- length(); //返回字符串长度
- empty(); //检查 str 是否为空,为空返回 1,否则返回 0
- str[n]; //存取 str 第 n + 1 个字符
- str.at(n); //存取 str 第 n + 1 个字符(如果溢出会抛出异常)
总的来说在C++中string是一个带有字符串处理函数的类。