zoukankan      html  css  js  c++  java
  • c++ string类型的定义及方法

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

      输出: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长度的字符串

     

  • 相关阅读:
    OSG在VS2008下的配置安装
    MFC编译Freetype2.3.7
    在VS中编译Opencascade6.6.0
    MFC 双缓存绘图
    SDI在自定义的工具栏上添加下拉控件
    DECLARE_MESSAGE_MAP用法
    64位电脑上安装MySQL进行MFC开发的相关问题
    VS2005+VTK读入点云文件
    VS2005编译VTK5.10.1
    HTML入门:Tag学习
  • 原文地址:https://www.cnblogs.com/houchen/p/8985063.html
Copyright © 2011-2022 走看看