• 由一段代码说开去——string


    #include <string>//包含string类
    #include <iostream>
    #include <algorithm>
    #include <vector>
    #include <cstdio>
    //#include <sstream>//字符串流
    using namespace std;
    
    int main()
    {
      string  a,b;
      char c[10]="拜拜";
      a="ab c";//把c字符串赋值给string对象
      a.append(c);//把字符或者字符串 追加到string对象的最后 很像vetor的push_back()方法;
      b+=a+c;
      cout<<b<<endl;
      cout<<a<<endl;
      b.append(a.begin(),a.end());
      cout<<b<<endl;
      /*
      find(),replace(),insert(),erase(),length(),compare(),reverse();
      这些方法婆婆妈妈的一大堆重载 鄙人感觉只要记住基本的 其他的可以通过求子串和复制构造等推求就可以了 
      也许着就是c和c++的区别 一个是给你基本的东西 让我用好这些工具 去探索大片未知的领域
      另一个交给你大量的工具 让你在遇到问题时 找到一定能够找到这些工具 你需要做到的只是记住它找到它
      */
      
      /*****************用string对象做vector的元素********************/
      vector<string> v;
      v.push_back(c);
      v.push_back(a);
      cout<<v[1]<<endl;
      
      /***********使用printf函数输出string对象的值***************/
      printf(a.c_str());
      
      return 0;
    }
    
    

      感觉c++中的string的使命有两个 一个是使用上面像vector 一个是功能上面取代c字符数组(因为有too much成员方法)

    1.首先创建一个string;就像其他类一样做 不过这个有许多重载的构造函数 还有复制构造函数可以将c字符串 转换成string对象
    2.append();是string类的一个成员方法,很像vector里面的pushback()方法;把字符或者字符串 追加到string对象的最后,所以就有了重载,参数可以是字符或,字符串指针

    3.string也有begin()和end()方法,可以像vector那样使用 ,可以作为成员方法replace(),append()和 reverse()函数(不是成员方法)的参数

    4.find():是string的一个成员方法,需要记住的基本知识是,(1)查找字符或者字符串;(2)接受两个参数,第一个是要查找的字符 或字符串 字符串可以是string c字符串指针 第二个是开始查找的位置

    如果从下标0开始 也可以省略这个参数(可见用了默认值技术);如果要指定在string里面查找的长度 那么需要第三个参数length(默认值是length()方法的返回值)

    5.replace():是string的一个成员方法,需要记住的基本知识是:(1)这个方法重载的比较强大,替代一段字符串为另一段;(2)参数分为两个部分:

    I.要被替换的部分,有两种表示方法,一种是下标+长度法(int index,int num),一种是迭代器区间法(iterator i1,iterator i2)第二种呢常用语从头开始的替换或者到尾结束的 因为比较适合迭代器的赋值

    II.用来替换的部分,有三种情况,a,用string来替换 只有这么一个参数 b.用c字符数组替换 有两个参数 第一个是字符串指针 第二个是要替换近的长度 c.用字符替换,包括两个参数第一个是字符的个数 第二个是字符

    6.insert(),erase(),成员方法和vector里面的相似;reverse()函数操作string时就像操作vector一样

    7.length(),成员方法是string的基本成员方法,类似于vector的size();

    8.compare(),成员方法重载的太多 觉得没有必要 达到的效果并不像replace那样,只需要记住 参数可以是string也可以是c字符串指针;其他的可以使用求子串的成员方法substr()推得

    9.substr(),成员方法是string的基本成员方法,求子串,接受两个参数 int index,int num; 如果没有第二个参数 那么默认求到末尾

    10.c_str()方法可以使string能够适用与c字符串能够使用的场合

  • 相关阅读:
    小三学算术
    The Balance
    扫描线
    2019牛客暑期多校训练营(第九场)
    后缀数组
    Manacher
    局部变量和全局变量的区别
    2386:Lake Counting-poj
    简单背包问题(0032)-swust oj
    编程中易犯错误集锦-持续更新。。。。。
  • 原文地址:https://www.cnblogs.com/dragonfive/p/2909157.html
Copyright © 2020-2023  润新知