c++中append和assign的区别

c++中append和assign的区别
2025-03-10 08:44:30
推荐回答(2个)
回答1:

append是在后面添加,assign是赋值
具体的来说(最简单的用法):
str1.append("AAAA");//就是把AAAA加到原来的字符串后边
str1.assign("AAAA");//就是那个str1赋值为AAAA,

回答2:

给你个例子参考吧:

#include 
#include 

using std::cout;
using std::endl;
using std::string;

int main()
{
string q1("When lilacs last in the dooryard bloom'd");
string q2("The child is father of the man");
string sentence;

sentence.assign(q2.begin(), q2.begin() + 13);
sentence.append(q1.substr(q1.find("in"), 15));
cout << sentence
<< endl;

return 0;
}


官方解释:(assign用来赋值相当于=,append用来连接相当于+)

string &assign(const char *s);//用c类型字符串s赋值
string &assign(const char *s,int n);//用c字符串s开始的n个字符赋值
string &assign(const string &s);//把字符串s赋给当前字符串
string &assign(int n,char c);//用n个字符c赋值给当前字符串
string &assign(const string &s,int start,int n);//把字符串s中从start开始的n个字符赋给当前字符串
string &assign(const_iterator first,const_itertor last);//把first和last迭代器之间的部分赋给字符串


string &append(const char *s);            //把c类型字符串s连接到当前字符串结尾
string &append(const char *s,int n);//把c类型字符串s的前n个字符连接到当前字符串结尾
string &append(const string &s);    //同operator+=()
string &append(const string &s,int pos,int n);//把字符串s中从pos开始的n个字符连接到当前字符串的结尾
string &append(int n,char c);        //在当前字符串结尾添加n个字符c
string &append(const_iterator first,const_iterator last);//把迭代器first和last之间的部分连接到当前字符串的结尾