C++之String

标准库string类型和字符串字面值

  因为历史原因以及为了与C语言兼容,字符串字面值与标准库std:string类型不是同一种类型。这一点很容易引起混乱,编程时一定要注意区分字符串字面值和string数据类型的使用,这很重要。

  其中在和字符串字面值连接的问题上体现的最为明显

  string类型中’+’是一个重载了的运算符,可以连接字符串,但是需要注意的是,‘+’的使用是在string类型的基础之上的:

1
2
3
4
5
6
7
8
9
10
11
string s1="hello";
string s2="world";
string s3=s1+",";
//正确,s1是string类型,+是string类型的重载运算符
string s4="hello"+",";
//错误,+前面是一个字符串,+并没有被重载
string s5=s1+","+"world";
//正确,第一个+是重载的运算符,s1+","
//仍然返回一个string类型,所以第二个+仍然是重载的运算符
分享到