string类的介绍

  string类封装了char*,是由一个char*型容器管理这个字符串的。和char*比较起来,string类不必担心内存是否足够、字符串长度等,而且作为一个类出现,它集成的操作函数足以满足大多数情况下的需求。并且string重载了左移运算符和右移运算符,可以把它看成是一个C++的基本数据类型。

  string类的使用需要包含头文件#include<string>。

1.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填充不足的部分

 

 

 

 

 

 

 

2.string类的构造函数

string(); //默认的构造函数
string(const string &str); //拷贝构造函数
string(const char* c); //用字符串c初始化
string(int n,char ch); //用n个ch字符串初始化

 

 

 

 

 

3.string类与char*类型的转换

很多场合下都会用到char*类型的参数,string提供了以下函数来把string类转换为char*类型。

char* 到string的转换直接赋值即可。

string到char*的转换如下:

const char* data() const; //返回一个非null终止的字符串数组
const char* c_str() const; //返回一个以null终止的字符串

int copy(char* c,int n,int pos=0) const; //把当前串以pos开始的n个字符拷贝到以c为起始位置的字符数组中,返回实际拷贝的树目

 

 

 

 

4.string类的插入和删除

string &insert(int p0,const char* c); //在p0处插入字符串c
string &insert(int p1,const char* c,int n); //在p1处插入字符串c的前n个字符
string &insert(int p2,const string &s); //在p2处插入字符串s
string &insert(int p3,const string &s,int n); //在p3处插入字符串的前n个字符
string &insert(int p4,int n,char c); //在p4处插入n个字符c
iterator insert(iterator it,char c); //在it处插入字符c,返回插入之后迭代器的位置
void insert(iterator it,const_iterator first,const_iterator last); //在it处插入[first, last)之间的字符
void insert(iterator it,int n,char c); //在it处插入n个字符c
iterator erase(iterator first,iterator last); //删除[first, last)之间的所有字符,返回删除之后迭代器的位置
iterator erase(iterator it); //删除it指向的字符,返回删除后迭代器的位置
string &erase(int pos=0,int n); //删除pos开始的n个字符,返回修改后的字符串

 

 

 

 

 

 

 

 

 

 

 

另外string类重载了数组下标运算符,我们可以像操作数组一样操作字符串,同时string类提供了一个at()函数,用于获取字符串的第n个元素。operator[]和at()均返回当前字符串中第n个字符的位置,但是at()函数提供范围检查,当越界时会抛出异常,下标运算符不提供检查访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值