开发者社区> 杨粼波> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

C++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字符串


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的值

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
C++:STL常用函数模块总结(set)
Set Sets是一个储存元素的容器,其中每个元素最多只出现一次,元素的遵循一个特定的顺序。元素一旦被放入次容器将不能被修改(修改元素的值),但是可以对元素进行插入和移除操作。
957 0
C++:STL常用函数模块总结(算法algorithm)
algorithm 一些已经编好的对一系列元素进行操作的函数集合(如排序,交换,计数等) 1、std::sort:具有排序的功能 default (1) template void sort (Ra...
2074 0
C++:STL常用函数模块总结(vector)
所有资料来源于http://www.cplusplus.com/reference/,至于STL不介绍了,想了解的童鞋们直接百度么,这里只总结常用模块的介绍和用法 vector容器 相当于可变数组,相比于数组占用更多的空间(额外空间以备扩容使用),和数组一样直接访问元素。
675 0
c++常用函数及头文件
数学 字符相关 字符串相关 随机数及atoi 注意C++11有更强大的方法! time相关
757 0
【C++常用容器】STL基础语法学习&list容器
简要介绍:将数据进行链式存储,list(链表)是一种物理存储单元上的非连续的存储单元,数据元素的逻辑顺序是通过链表中的指针链接实现的。链表是由一系列结点组成;结点由两部分组成,一个是存储数据元素的数据域,一个是存储下一个结点地址的指针域。
0 0
【C++常用容器】STL基础语法学习&vector容器
■vector数据结构和数组非常相似,也称为单端数组 vector与普通数组的区别: ■不同之处在于数组是静态空间,而vector可以动态扩展 动态扩展: ■并不是在原空间空间之后续接新空间,而是找更大的内存空间,然后将原数据拷贝新空间,释放原空间
0 0
【C++常用容器】STL基础语法学习&string容器
string是c++风格的字符串,而string本质上是一个类
0 0
【C++常用算法】STL基础语法学习 | 拷贝算法&替换算法
将容器内指定范围的元素拷贝到另一容器中
0 0
+关注
杨粼波
网游的老兵
文章
问答
文章排行榜
最热
最新
相关电子书
更多
继承与功能组合
立即下载
移动与复制
立即下载
C++课程-对象模型
立即下载