Loading

c++ string类型的定义及方法

1.c++ 有两种风格的字符串形式
  c风格字符串
  定义及初始化
  char a[]={'h','e','l','l','o','\0'}
  或者
  char a[]="hello"; //C++ 编译器会在初始化数组时,自动把 '\0' 放在字符串的末尾

  输出:cout<<a;
             或者
             for(int i=0;i<strlen(a);i++)
                 cout<<a[i]

  长度:strlrn(a);

  string类型
  定义及初始化:
  string a="hello";
 
  输出:cout<<a;

            或者
             for(int i=0;i<strlen(a);i++)
                 cout<<a[i](或者a.at(i) )
 
  长度:a.size();

2.string类型的字符串运算和函数

 在以字符数组存放字符串时,字符串的运算要用字符串函数,如strcat(连接)、strcmp(比较)、strcpy(复制),而对string类对象,可以不用这些函数,而直接用简单的运算符。

这是因为模板库中重载了例如 + 、+= 、= 的运算符。

    1).字符串复制用赋值号
         string1=string2;
         其作用与“strcpy(string1,string2);”相同。

    2).字符串连接用加号
         string string1=″C++″; //定义string1并赋初值
         string string2=″Language″;//定义string2并赋初值
         string1=string1 + string2;//连接string1和string2
         连接后string1为″C++ Language″。

    3)字符串比较直接用关系运算符
       可以直接用 ==(等于)、>(大于)、<(小于)、!=(不等于)、>=(大于或等于)、<=(小于或等于)等关系运算符来进行字符串的比较。
       使用这些运算符比使用5.5.5节中介绍的字符串函数直观而方便

    4)获取字符串的第一个字符   获取字符串的最后一个字符

     string::const_iterator it = str1.begin();
     cout << *it << endl;
     cout << endl;
     
     it = str1.end();//end是指向最后一个字符后面的元素,而且不能输出,所以cout << *it << endl;这样输出会报错
     it--;
    cout << *it << endl;
    cout << endl;

    5)倒置串

    reserve(str.begin(),str.end());

    6)查找串

    //find-从指定位置起向后查找,直到串尾
     string st1("babbabab");
     cout << st1.find('a') << endl;       //1       默认从位置0(即第1个字符)开始查找
     cout << st1.find('a', 2) << endl;   //4       在st1中,从位置2(b,包括位置2)开始,查找a,返回首次匹配的位置
     string st2("aabcbcabcbabcc");
     str1 = "abc";
     cout << st2.find(str1, 2) << endl;//6     从st2的位置2(b)开始匹配,返回第一次成功匹配时匹配的串(abc)的首字符在st2中的位置,失败返回-1

    7)截取字符串

    str.substr(startpos,length); //从str的startpos位置截取length长度的字符串

 

 

posted @ 2018-05-03 14:08  青岑  阅读(27398)  评论(1编辑  收藏  举报