zoukankan      html  css  js  c++  java
  • 标准库类型String

    定义和初始化string对象

      初始化string对象方式

        string s1   默认初始化,s1是一个空串

        string s2(s1)  s2是s1的副本

        string s2 = s1  等价于s2(s1), s2是s1的副本

        string s3("value")  s3是字面值"value"的副本,除了字面值最后的那个空字符外   //直接初始化

        string  s3 = "value"  等价于s3("value"),s3 是字面值"value" 的副本        //拷贝初始化

        string s4(n,'c')  把s4初始化为由连续n个字符c组成的串             //直接初始化

    直接初始化和拷贝初始化   在上面的初始化方式中有说明  

    string 对象上 操作

      

     String  的empty和size操作

      empty判断string对象是否为空,返回值为布尔值

      size函数返回string对象的长度

    比较string对象

      运算符都依照大小写敏感的字典顺序来进行比较。

    两个string对象相加

      两个string对象相加得到一个新的string对象。其内容是左侧运算对象和右侧运算对象串接而成,类似于: "hello" + "world" = "hello world";

    字面值和string对象相加

      当把string对象和字符字面值及字符串字面值混在一条语句中使用时,必须要保证每个加法运算符的两侧的运算对象至少有一个是string

      string s5 = "hello" + ",  "  //错误,两个对象都不是string,不能把字面值直接相加。

    处理string对象中的字符

      

     使用基于范围的for语句处理每个字符

      string str("some string");

      for(auto c:str )

        cout<<c<<endl;   //将str字符串中的每个字符每行一个输出出来。

    使用范围for语句改变字符串中的字符

    string s("HELLO WORLD");
    for (auto &c : s)       //注意这里的c前有& 
        c = toupper(c); 

      这里的c是引用,赋值语句将改变s中的字符的值。

    只处理一部分字符:

      下标运算符:s[i] 直接改

      下标执行迭代(就是在for循环中加控制条件,将要更改的字符提取出来更改就OK了) 

      使用下标执行随机访问

      

    一个小练习:

          

     1 #include <iostream> 
     2 #include <string>
     3 
     4 using namespace std;
     5 
     6 int main()
     7 {
     8     string str("extraordinary");
     9 
    10     for (auto &c : str)
    11     {
    12         c = 'x';
    13     }
    14     cout << str << endl;
    15 
    16     system("pause");
    17     return 0;
    18 }

     

  • 相关阅读:
    构造方法
    封装 private
    局部变量和成员变量区别
    IOC
    Linux端口占用查询命令
    Nginx小白入门实战
    SQL left join right join inner join之间的区别
    IDEA导入maven工程时,不会自动识别怎么办
    Spring中Controller层中的method显示为灰色并且提示method is never used的原因
    查看服务器公网IP
  • 原文地址:https://www.cnblogs.com/xingzhuan/p/10567194.html
Copyright © 2011-2022 走看看