美文网首页
C++学习笔记(八)String类型(下)

C++学习笔记(八)String类型(下)

作者: 活体检测业余爱好 | 来源:发表于2017-08-01 14:32 被阅读23次

    1、提取子字符串

    函数substr可以提取string字符串中的子字符串,该函数有两个参数,第一个参数为需要提取的子字符串的起始下标,第二个参数是需要提取的子字符串的长度。

    例1:

    该函数同样会出现参数越界的情况,如果第一个参数越界则函数会抛出异常。在第一个参数没有越界的情况下,第二个参数仍然会导致越界,该函数的处理方式与前面提到的erase函数、replace函数相同,子字符串最多从第一个参数所指明的下标开始一直延续到字符串结尾。

    2、查找字符串

    find函数可以在字符串中查找子字符串中出现的位置。该函数有两个参数,第一个参数是待查找的子字符串,第二个参数是表示开始查找的位置,如果第二个参数不指名的话则默认从0开始查找,也即从字符串首开始查找。

    例1:

    函数最终返回的是子字符串出现在字符串中的起始下标。例1程序最终实在下标6处找到了s2字符串。如果没有查找到子字符串,则会返回一个无穷大值4294967295。

    rfind函数与find函数很类似,同样是在字符串中查找子字符串,不同的是find函数是从第二个参数开始往后查找,而rfind函数则是最多查找到第二个参数处,如果到了第二个参数所指定的下标还没有找到子字符串,则返回一个无穷大值4294967295。

    例2:

    例2中rfind函数第二个参数是6,也就是说起始查找从0到6,如果找到了则返回下标,否则返回一个无穷大。本例中刚好在下标6的时候找到了子字符串s2,故而返回下标6。

    find_first_of函数是用于查找子字符串和字符串共同具有的字符在字符串中出现的位置。

    例3:

    本例中s1和s2共同具有的字符是’s’,该字符在s1中首次出现的下标是3,故查找结果返回3。

    而find_first_not_of函数则相反,它查找的是在s1字符串但不在s2字符串中的首位字符的下标,如果查找不成功则返回无穷大。

    例4:

    在本例中在s1但是不在s2中的首字符是’t’,其所在下标为13,故而返回下标13。

    3、字符串的比较

    “==”、 “!=”、 “<=”、 “>=”、 “<”和“>”操作符都可以用于进行string类型字符串的比较,这些操作符两边都可以是string字符串,也可以一边是string字符串另一边是字符串数组。

    例1:


    C++/C中都可以用strcmp进行字符串的比较strcmp(str1,str2)则相当于返回str1-str2。

    相关文章

      网友评论

          本文标题:C++学习笔记(八)String类型(下)

          本文链接:https://www.haomeiwen.com/subject/niyjlxtx.html