求c++大神给说下string中的append()函数的用法

求大神给说下,给发个资料也好,谢谢... 求大神给说下,给发个资料也好,谢谢 展开
 我来答
天蝎神经侠侣
高粉答主

2015-08-03 · 关注我不会让你失望
知道大有可为答主
回答量:7533
采纳率:67%
帮助的人:716万
展开全部
要想使用标准C++中string类,必须要包含
#include <string>// 注意是<string>,不是<string.h>,带.h的是C语言中的头文件
using std::string;
using std::wstring;

using namespace std;
下面你就可以使用string/wstring了,它们两分别对应着char和wchar_t。
string和wstring的用法是一样的,以下只用string作介绍:

string类的构造函数:
string(const char *s); //用c字符串s初始化
string(int n,char c); //用n个字符c初始化
此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常 ;

string类的字符操作:
const char &operator[](int n)const;
const char &at(int n)const;
char &operator[](int n);
char &at(int n);
operator[]和at()均返回当前字符串中第n个字符的位置,但at函数提供范围检查,当越界时会抛出out_of_range异常,下标运算符[]不提供检查访问。
const char *data()const;//返回一个非null终止的c字符数组
const char *c_str()const;//返回一个以null终止的c字符串
int copy(char *s, int n, int pos = 0) const;//把当前串中以pos开始的n个字符拷贝到以s为起始位置的字符数组中,返回实际拷贝的数目

string的特性描述:
int capacity()const; //返回当前容量(即string中不必增加内存即可存放的元素个数)
int max_size()const; //返回string对象中可存放的最大字符串的长度
int size()const; //返回当前字符串的大小
int length()const; //返回当前字符串的长度
bool empty()const; //当前字符串是否为空
void resize(int len,char c);//把字符串当前大小置为len,并用字符c填充不足的部分
string类的输入输出操作:
string类重载运算符operator>>用于输入,同样重载运算符operator<<用于输出操作。
函数getline(istream &in,string &s);用于从输入流in中读取字符串到s中,以换行符'\n'分开。
string的赋值:
string &operator=(const string &s);//把字符串s赋给当前字符串
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的连接:
string &operator+=(const string &s);//把字符串s连接到当前字符串的结尾
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之间的部分连接到当前字符串的结尾

string的比较:
bool operator==(const string &s1,const string &s2)const;//比较两个字符串是否相等
运算符">","<",">=","<=","!="均被重载用于字符串的比较;
int compare(const string &s) const;//比较当前字符串和s的大小
int compare(int pos, int n,const string &s)const;//比较当前字符串从pos开始的n个字符组成的字符串与s的大小
int compare(int pos, int n,const string &s,int pos2,int n2)const;//比较当前字符串从pos开始的n个字符组成的字符串与s中
                                  //pos2开始的n2个字符组成的字符串的大小
int compare(const char *s) const;
int compare(int pos, int n,const char *s) const;
int compare(int pos, int n,const char *s, int pos2) const;
compare函数在>时返回1,<时返回-1,==时返回0

string的子串:
string substr(int pos = 0,int n = npos) const;//返回pos开始的n个字符组成的字符串
string的交换:
void swap(string &s2); //交换当前字符串与s2的值

string类的查找函数:
int find(char c, int pos = 0) const;//从pos开始查找字符c在当前字符串的位置
int find(const char *s, int pos = 0) const;//从pos开始查找字符串s在当前串中的位置
int find(const char *s, int pos, int n) const;//从pos开始查找字符串s中前n个字符在当前串中的位置
int find(const string &s, int pos = 0) const;//从pos开始查找字符串s在当前串中的位置
//查找成功时返回所在位置,失败返回string::npos的值
int rfind(char c, int pos = npos) const;//从pos开始从后向前查找字符c在当前串中的位置
int rfind(const char *s, int pos = npos) const;
int rfind(const char *s, int pos, int n = npos) const;
int rfind(const string &s,int pos = npos) const;
//从pos开始从后向前查找字符串s中前n个字符组成的字符串在当前串中的位置,成功返回所在位置,失败时返回string::npos的值
int find_first_of(char c, int pos = 0) const;//从pos开始查找字符c第一次出现的位置
int find_first_of(const char *s, int pos = 0) const;
int find_first_of(const char *s, int pos, int n) const;
int find_first_of(const string &s,int pos = 0) const;
//从pos开始查找当前串中第一个在s的前n个字符组成的数组里的字符的位置。查找失败返回string::npos
int find_first_not_of(char c, int pos = 0) const;
int find_first_not_of(const char *s, int pos = 0) const;
int find_first_not_of(const char *s, int pos,int n) const;
int find_first_not_of(const string &s,int pos = 0) const;
//从当前串中查找第一个不在串s中的字符出现的位置,失败返回string::npos
int find_last_of(char c, int pos = npos) const;
int find_last_of(const char *s, int pos = npos) const;
int find_last_of(const char *s, int pos, int n = npos) const;
int find_last_of(const string &s,int pos = npos) const;
int find_last_not_of(char c, int pos = npos) const;
int find_last_not_of(const char *s, int pos = npos) const;
int find_last_not_of(const char *s, int pos, int n) const;
int find_last_not_of(const string &s,int pos = npos) const;
//find_last_of和find_last_not_of与find_first_of和find_first_not_of相似,只不过是从后向前查找
besthelp
2013-08-21 · TA获得超过1057个赞
知道小有建树答主
回答量:376
采纳率:100%
帮助的人:389万
展开全部

append函数是向string 的后面追加字符或字符串。

(1)向string 的后面加C-string

basic_string& append( const value_type* _Ptr );
string s ( "Hello " ); // s=”Hello ”
const char *c = "Out There ";
s.append ( c ); // s=”Hello Out There”

(2)向string 的后面加C-string 的一部分

basic_string& append( const value_type* _Ptr, size_type _Count );
string s ( "Hello " ); // s=”Hello ”
const char *c = "Out There ";
s.append ( c , 3 ); // s=”Hello Out”

(3)向string 的后面加string(有两种方法)

basic_string& append( const basic_string& _Str );
string s1 ( "Hello " ), s2 ( "Wide " ), s3( "World " );
s1.append ( s2 ); // s1=”Hello Wide”
s1 += s3; // s1=”Hello Wide World”

(4)向string 的后面加string 的一部分 ---A

basic_string& append( const basic_string& _Str, size_type _Off,
size_type _Count );
string s1 ( "Hello " ), s2 ( "Wide World " );
s1.append ( s2 , 5 , 5 ); // s1=”Hello World”

(5)向string 的后面加string 的一部分 ---B

template<class InputIterator> basic_string& append(
InputIterator _First, InputIterator _Last );
string str1f ( "Hello " ), str2f ( "Wide World" );
str1f.append ( str2f.begin ( ) + 5 , str2f.end ( ) );
 // s1=”Hello World”

(6)向string 的后面加多个字符

basic_string& append( size_type _Count, value_type _Ch );
string str1e ( "Hello " );
str1e.append ( 4 , '!' ); // s1=”Hello !!!!”

 

参考:http://www.cppblog.com/Sandywin/archive/2008/01/20/41516.aspx

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
充沉青山雁
2019-12-10 · TA获得超过3844个赞
知道大有可为答主
回答量:3151
采纳率:33%
帮助的人:425万
展开全部
要想使用标准C++中string类,必须要包含
#include
<string>//
注意是<string>,不是<string.h>,带.h的是C语言中的头文件
using
std::string;
using
std::wstring;

using
namespace
std;
下面你就可以使用string/wstring了,它们两分别对应着char和wchar_t。
string和wstring的用法是一样的,以下只用string作介绍:
string类的构造函数:
string(const
char
*s);
//用c字符串s初始化
string(int
n,char
c);
//用n个字符c初始化
此外,string类还支持默认构造函数和复制构造函数,如string
s1;string
s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常

string类的字符操作:
const
char
&operator[](int
n)const;
const
char
&at(int
n)const;
char
&operator[](int
n);
char
&at(int
n);
operator[]和at()均返回当前字符串中第n个字符的位置,但at函数提供范围检查,当越界时会抛出out_of_range异常,下标运算符[]不提供检查访问。
const
char
*data()const;//返回一个非null终止的c字符数组
const
char
*c_str()const;//返回一个以null终止的c字符串
int
copy(char
*s,
int
n,
int
pos
=
0)
const;//把当前串中以pos开始的n个字符拷贝到以s为起始位置的字符数组中,返回实际拷贝的数目
string的特性描述:
int
capacity()const;
//返回当前容量(即string中不必增加内存即可存放的元素个数)
int
max_size()const;
//返回string对象中可存放的最大字符串的长度
int
size()const;
//返回当前字符串的大小
int
length()const;
//返回当前字符串的长度
bool
empty()const;
//当前字符串是否为空
void
resize(int
len,char
c);//把字符串当前大小置为len,并用字符c填充不足的部分
string类的输入输出操作:
string类重载运算符operator>>用于输入,同样重载运算符operator<<用于输出操作。
函数getline(istream
&in,string
&s);用于从输入流in中读取字符串到s中,以换行符'\n'分开。
string的赋值:
string
&operator=(const
string
&s);//把字符串s赋给当前字符串
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的连接:
string
&operator+=(const
string
&s);//把字符串s连接到当前字符串的结尾
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之间的部分连接到当前字符串的结尾
string的比较:
bool
operator==(const
string
&s1,const
string
&s2)const;//比较两个字符串是否相等
运算符">","<",">=","<=","!="均被重载用于字符串的比较;
int
compare(const
string
&s)
const;//比较当前字符串和s的大小
int
compare(int
pos,
int
n,const
string
&s)const;//比较当前字符串从pos开始的n个字符组成的字符串与s的大小
int
compare(int
pos,
int
n,const
string
&s,int
pos2,int
n2)const;//比较当前字符串从pos开始的n个字符组成的字符串与s中
                                  //pos2开始的n2个字符组成的字符串的大小
int
compare(const
char
*s)
const;
int
compare(int
pos,
int
n,const
char
*s)
const;
int
compare(int
pos,
int
n,const
char
*s,
int
pos2)
const;
compare函数在>时返回1,<时返回-1,==时返回0
string的子串:
string
substr(int
pos
=
0,int
n
=
npos)
const;//返回pos开始的n个字符组成的字符串
string的交换:
void
swap(string
&s2);
//交换当前字符串与s2的值
string类的查找函数:
int
find(char
c,
int
pos
=
0)
const;//从pos开始查找字符c在当前字符串的位置
int
find(const
char
*s,
int
pos
=
0)
const;//从pos开始查找字符串s在当前串中的位置
int
find(const
char
*s,
int
pos,
int
n)
const;//从pos开始查找字符串s中前n个字符在当前串中的位置
int
find(const
string
&s,
int
pos
=
0)
const;//从pos开始查找字符串s在当前串中的位置
//查找成功时返回所在位置,失败返回string::npos的值
int
rfind(char
c,
int
pos
=
npos)
const;//从pos开始从后向前查找字符c在当前串中的位置
int
rfind(const
char
*s,
int
pos
=
npos)
const;
int
rfind(const
char
*s,
int
pos,
int
n
=
npos)
const;
int
rfind(const
string
&s,int
pos
=
npos)
const;
//从pos开始从后向前查找字符串s中前n个字符组成的字符串在当前串中的位置,成功返回所在位置,失败时返回string::npos的值
int
find_first_of(char
c,
int
pos
=
0)
const;//从pos开始查找字符c第一次出现的位置
int
find_first_of(const
char
*s,
int
pos
=
0)
const;
int
find_first_of(const
char
*s,
int
pos,
int
n)
const;
int
find_first_of(const
string
&s,int
pos
=
0)
const;
//从pos开始查找当前串中第一个在s的前n个字符组成的数组里的字符的位置。查找失败返回string::npos
int
find_first_not_of(char
c,
int
pos
=
0)
const;
int
find_first_not_of(const
char
*s,
int
pos
=
0)
const;
int
find_first_not_of(const
char
*s,
int
pos,int
n)
const;
int
find_first_not_of(const
string
&s,int
pos
=
0)
const;
//从当前串中查找第一个不在串s中的字符出现的位置,失败返回string::npos
int
find_last_of(char
c,
int
pos
=
npos)
const;
int
find_last_of(const
char
*s,
int
pos
=
npos)
const;
int
find_last_of(const
char
*s,
int
pos,
int
n
=
npos)
const;
int
find_last_of(const
string
&s,int
pos
=
npos)
const;
int
find_last_not_of(char
c,
int
pos
=
npos)
const;
int
find_last_not_of(const
char
*s,
int
pos
=
npos)
const;
int
find_last_not_of(const
char
*s,
int
pos,
int
n)
const;
int
find_last_not_of(const
string
&s,int
pos
=
npos)
const;
//find_last_of和find_last_not_of与find_first_of和find_first_not_of相似,只不过是从后向前查找
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
linzjay
2013-08-21 · TA获得超过257个赞
知道小有建树答主
回答量:286
采纳率:0%
帮助的人:251万
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式