zoukankan      html  css  js  c++  java
  • c++ --string操作

    顺序容器--额外的string操作

      除了顺序容器共同的操作之外,string类型还提供了一些额外的操作。这些操作中大致可以分为两部分:

      1. 提供string类和C风格字符出租之间的相互转换

      2. 增加了允许我们用下标代替迭代器的版本。


    构造string的其他方法

    构造string的其他方法            
    n,len2和pos2都是无符号值              注意:需要给出pos的,在第二个参数给出                                                        
    string s(cp,n) s是cp 指向的数组中前n 个字符的拷贝。此数组至少应该包含n个字符
    string s(s2,pos2) s是string s2 从下标pos2 开始的字符的拷贝。若pos2>s2.size(),构造函数的行为未定义。
    string s(s2,pos2,len2)

    s是string s2 从下标pos2 开始len2 个字符的拷贝。若pos2 > s2.size(),构造函数的行为未定义。不管len2 的值是多少,

    构造函数至多拷贝s2.size()-pos2个字符。

       这些构造函数接受一个string 或一个const char* 参数,还接受(可选的)指定拷贝多少个字符的参数(pos2,len2)

    substr(pos,n) 操作

      substr操作返回一个string,它是原始string的一部分货全部的拷贝。可以传递给substr 一个可选的开始位置和计数值:

      string s("hello world");

       //返回一个string,包含s 中从pos 开始的n 个字符的拷贝。pos的默认值为0。n的默认值为s,size()-pos, 即拷贝从pos开始的所有字符

      string s1=s.substr(pos,n);   

    改变string的其他方法

    修改string 的操作       注意:需要制定pos的,在第一个参数给出    常用场景                                    
    s.assign(args) 将s 中的字符替换为args 指定的字符。返回一个指向s 的引用 替换s 中的所有内容
    s.append(args) 将args 追加到s末尾。返回一个指向s 的引用。 将新字符追加到s 末尾
    s.insert(pos,args)

    在pos 之前插入args 指定的字符。pos 可以使一个下标或一个迭代器。

    接受下标的版本返回一个指向s 的引用;接受迭代器的版本返回指向第一个插入字符的迭代器。

    在给定位置之前插入新字符
    s.replace(range,args)

    删除s 中range 内的字符,替换为args 指定的字符。

    range 或者是一个下标和一个长度,或者是一对指向s 的迭代器。返回一个指向s 的引用。

    删除指定范围字符,并插入新字符

    (新旧字符长度可以不一样长)

       新字符可以来自于:1. 另一个string;2. 一个字符指针(指向的字符数组);3. 一个花括号包围的字符列表。当字符来自于一个string 或一个字符指针时,我们可以传递一个额外的参数来控制是拷贝部分还是全部字符。例如,s.insert(0, s2, 0, s2.size());    //在s[0]之前插入s2 中s2[0] 开始的s2.size() 个字符。

      并不是每个函数都支持所有形式的参数。例如,insert 就不支持下标和初始化列表参数。类似的,如果我们希望用迭代器指定插入点,就不能用字符指针指定新字符的来源。

    string 搜索操作

      string 类提供了6个不同的搜索函数,每个函数都有4个重载版本。每个搜索操作都返回一个string::size_type (无符号类型)值,表示匹配发生位置的下标。如果未找到,返回npos (初始化为-1)。

      

    string 搜索操作  
    s.find(args) 查找s 中args 第一次出现的位置
    s.rfind(args) 查找s 中args 最后一次出现的位置
    s.find_first_of(args) 在s 中查找args 中任何一个字符第一次出现的位置
    s.find_last_of(args) 在s 中查找args 中任何一个字符最后一次出现的位置
    s.find_first_not_of(args) 在s 中查找第一个不在args 中的字符
    s.find_last_not_of(args) 在s 中查找最后一个不在args 中的字符

    args 必须是以下形式之一

    注意:需要给出pos的,在第二个参数给出
    c, pos 从s 中位置pos开始查找字符c. pos 默认为0
    s2, pos

    从s 中位置pos 开始查找字符串s2。 pos默认为0

    cp, pos

    从s 中位置pos 开始查找指针cp 指向的以空字符结尾的C 风格字符串。

    pos 默认为0

    cp, pos, n

    从s 中位置pos 开始查找指针cp 指向的数组的前n 个字符。

    pos 和n 无默认值

     compare函数

      标准库string 类型提供了一组compare 函数,类似C 标准库的strcmp 函数,根据s 是等于、大于还是小于参数指定的字符串,s.compare(args) 返回0,正数或负数。

      根据参数的不同,compare函数有6个重载版本。具体args 形式参见c++ primer P327,表9.15.

    数值转换

      新标准引入了多个函数,可以实现数值数据与标准库string之间的转换

      具体转换函数,参见c++primer P328,表9.16.


  • 相关阅读:
    python dict 与json的运用
    request各种请求的封装
    图片上传两种第三方库调用的封装函数
    JWT Token 生成与token的解析
    如何将windows文件传至linux
    windows 下python 环境安装
    shell的条件测试
    shell的数值运算
    shell基础认知
    cookie和代理
  • 原文地址:https://www.cnblogs.com/cygalaxy/p/7077499.html
Copyright © 2011-2022 走看看