标准库类型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 }

 

原文地址:https://www.cnblogs.com/xingzhuan/p/10567194.html