c ++中字符串类对象的+运算符和追加函数之间的区别?

grv*_*grv 4 c++ string

我们可以添加两个字符串类对象

string str1="hello"
string str2="world"

string final =str1+str2;
Run Code Online (Sandbox Code Playgroud)

要么

string f=str1.append(str2);
Run Code Online (Sandbox Code Playgroud)

这两种方法有什么区别?他们添加或实施的顺序或其他什么?

Cae*_*sar 7

operator +将两个字符串组合在一起并生成一个带有该值的新字符串.append将取一个字符串并连接到字符串的末尾.

#include <iostream>
#include <string>
using namespace std;

int main ()
{
  string str = "Writing";
  string str2= " a book";
  str.append(str2);                      
  cout << str << endl;  // "Writing a book"
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

此外,append还有更多功能,例如只附加该字符串的一部分

#include <iostream>
#include <string>
using namespace std;

int main ()
{
  string str;
  string str2="Writing ";
  string str3="print 10 and then 5 more";

  // used in the same order as described above:
  str.append(str2);                       // "Writing "
  str.append(str3,6,3);                   // "10 "
  str.append("dots are cool",5);          // "dots "
  str.append("here: ");                   // "here: "
  str.append(10,'.');                     // ".........."
  str.append(str3.begin()+8,str3.end());  // " and then 5 more"
  str.append<int>(5,0x2E);                // "....."

  cout << str << endl;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

更多关于附加在这里.