C++ string 常用函数
C++ String常用函数
一,类型别名
|
size_type |
无符号整型 |
|
iterator |
迭代器类型 |
|
const_iterator |
只读迭代器 |
|
reverse_iterator |
逆序迭代器 |
|
const_reverse_iterator |
只读逆序迭代器 |
|
different_type |
足以存储两个迭代器差值的有符号整型 |
|
value_type |
元素类型 |
|
reference |
元素左值类型,是value_type&的同义词 |
|
const_reference |
元素常量左值类型,是const value_type&的同义词 |
二,构造函数
|
string s1; |
默认构造函数 |
|
string s2(s1); |
初始化为s1的副本 |
|
string s3("value"); |
初始化为字符串字面值的副本 |
|
string s4(n,'c'); |
初始化为n个字符为'c'的副本 |
|
string s5(cp,n); |
初始化为cp所指数组的前n个字符的副本 |
|
string s6(s1,pos); |
初始化为s1从下标pos开始的字符的副本 |
|
string s7(s1,pos,len); |
初始化为s1从下标pos开始长度为len个字符的副本 |
|
string s8(b,e); |
初始化为迭代器b和e标记范围内的元素的副本 |
三,添加元素
|
s.push_back('t'); |
尾部添加值为t的字符 |
|
s.insert(p,'t'); |
迭代器p前面插入值为't'的字符,返回指向新字符的迭代器 |
|
s.insert(p,n,'t'); |
迭代器p前插入n个值为't'的字符,返回void |
|
s.insert(p,b,e); |
迭代器p前插入由迭代器b和e标记范围的元素 |
|
s.insert(pos,n,'t'); |
在下标pos前插入n个值为't'的字符 |
|
s.insert(pos,s2); |
在下标pos前插入string对象s2 |
|
s.insert(pos,s2,pos2,len); |
在下标pos前插入s2从pos2下标开始的len个字符 |
|
s.insert(pos,cp,len); |
在下表pos前插入cp所指数组的前len个字符 |
|
s.insert(pos,cp); |
在下表pos前插入cp所指的以空字符结束的字符串 |
四,删除元素
|
s.erase(p); |
删除迭代器p所指向的元素。返回指向被删元素后一个元素的迭代器 |
|
s.erase(b,e); |
删除由迭代器b和e标记范围内的元素,返回指向被删元素段后一个元素的迭代器 |
|
s.pop_back(); |
删除最后一个元素。返回void。VS2010支持。 |
|
s.clear(); |
删除所有元素,返回void |
五,长度大小
|
s.size(); |
返回s中元素个数,类型为size_type |
|
s.max_size(); |
返回s中可容纳最多元素个数,类型为size_type |
|
s.empty(); |
返回s中元素是否为0的布尔值 |
|
s.resize(n); |
调整s的长度大小,使其能容纳n个元素 如果n<s.size(),则删除多余元素,否则,添加采用值初始化的新元素 |
|
s.resize(n,'t'); |
调整s的长度大小,使其能容纳n个值为't'的元素 |
|
s.capacity(); |
返回在s需要分配更多存储空间前能存储的元素个数,返回类型为size_type |
|
s.reserve(n); |
设置s预留n个元素的存储空间,返回void |
六,赋值操作
|
s1=s2; |
删除s1的所有元素,将s2元素复制给s1 |
|
s1.swap(s2); |
将s1和s2的内容交换 |
|
s.assign(b,e); |
重设s的元素:将迭代器b和e标记范围的元素复制给s |
|
s.assign(n,'t'); |
重设s为存储了n个值为't'的对象 |
|
s.assign(s2); |
不解析 |
|
s.assign(s2,pos2,len); |
不解析 |
|
s.assign(cp,len); |
不解析 |
|
s.assign(cp); |
不解析 |
七,子串操作
|
s.substr(pos,n); |
返回string类型字符串,包含从下表pos开始的n个字符 |
|
s.substr(pos); |
不解析 |
|
s.substr(); |
返回s的副本 |
|
s.c_str(); |
返回s的c风格字符串 |
八,string对象修改
操作函数:(args在参数表定义)
|
s.append(args); |
将args串接在s后面。返回s的引用 |
|
s.replace(pos,len,args); |
删除s中从下标开始的len个字符,用args替代之。返回s的引用。 此版本中,args不能为b2,e2 |
|
s.replace(b,e,args); |
删除迭代器b和e标记范围内所有的字符,用args替代之。返回s的引用。 此版本中,args不能为s2,pos2,len2 |
args参数定义:
|
s2 |
string 类型的字符串s2 |
|
s2,pos2,len2 |
string类型的字符串s2中从下标pos2开始的len2个字符 |
|
cp |
指针cp指向的以空字符结束的数组 |
|
cp,len2 |
cp指向的数组中的前len2个字符 |
|
n,'t' |
字符't'的n个副本 |
|
b2,e2 |
迭代器b2和e2标记范围内的所有字符 |
九,string查找操作
操作函数:(args在参数表格定义,返回类型都是size_type或是string::nops)
注意:find和rfind是串精确查找,而find_first和find_last是单个字符查找。
|
s.find(args); |
在s中查找args的第一次出现 |
|
s.rfind(args); |
在s中查找args的最后一次出现 |
|
s.find_first_of(args); |
在s中查找args的任意字符的第一次出现 |
|
s.find_last_of(args); |
在s中查找args的任意字符的最后一次出现 |
|
s.find_first_not_of(args); |
在s中查找第一个不属于args的字符 |
|
s.find_last_not_of(args); |
在s中查找最后一个不属于args的字符 |
agrs参数:
|
't',pos |
从下标pos开始,查找字符't',pos的默认值为0 |
|
s2,pos |
从下标pos开始,查找string对象s2,pos默认值为0 |
|
cp,pos |
查找cp所指C风格字符串,pos默认值为0 |
|
cp,pos,n |
从下标pos开始,查找cp所指数组前n个字符 |
十,string对象比较(大于返回正数,小于返回负数,等于返回0)
|
s.compare(s2); |
比较s和s2 |
|
s.compare(pos1,n1,s2); |
让s中从pos下标开始的n1个字符跟s2做比较 |
|
s.compare(pos1,n1,s2,pos2,n2); |
让s中从pos1下标开始的n1个字符与s2中从pos2开始的n2个字符比较 |
|
s.compare(cp); |
cp,C风格字符串 |
|
s.compare(pos1,n1,cp); |
不解析 |
|
s.compare(pos1,n1,cp,n2); |
不解析 |
C++ string 常用函数的更多相关文章
- C#string常用函数总结
补充: 1:在C语言里 char占1个字节 而在C#,Java里char占两个字节 数据库里char 中汉占两个字节 字母数字占一个字 2:string ...
- 【STL】string 常用函数
string类的构造函数: string(const char *s); //用c字符串s初始化 string(int n,char c); //用n个字符c初始化 此外,string类还支持默认构造 ...
- 【转】string常用函数
原文地址:http://hi.baidu.com/baowup/blog/item/3a27465c86d71546faf2c066.html/cmtid/de1ef3f0de7554a0a40f52 ...
- String 类的实现(5)String常用函数
2 #include<iostream> 3 #include<stdio.h> 4 #include<assert.h> 5 #include <iom ...
- stl string常用函数
string类的构造函数: string(const char *s); //用c字符串s初始化 string(int n,char c); //用n个字符c初始化 此外,string类还支持默认构造 ...
- C++中的string常用函数用法
标准c++中string类函数介绍 注意不是CString 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够.字符串长度等等,而 ...
- c++标准库中的string常用函数总结《转》
标准C++中的string类的用法总结 相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有 ...
- STL string 常用函数(转)
string类的构造函数: string(const char *s); //用c字符串s初始化 string(int n,char c); //用n个字符c初始化 此外,string类还支持默认构造 ...
- c++中的string常用函数用法总结!
标准c++中string类函数介绍 注意不是CString 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够.字符串长度等等,而且作 ...
随机推荐
- 机器学习降维方法概括, LASSO参数缩减、主成分分析PCA、小波分析、线性判别LDA、拉普拉斯映射、深度学习SparseAutoEncoder、矩阵奇异值分解SVD、LLE局部线性嵌入、Isomap等距映射
机器学习降维方法概括 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u014772862/article/details/52335970 最近 ...
- 怎样判断一个jquery对象是否为空jquery对象
if ( $('#myDiv').length ){} http://stackoverflow.com/questions/47... 也可以直接判断$('#myDiv')[0]===undefin ...
- 51nod 1380"夹克老爷的逢三抽一"(贪心+set)
传送门 •参考资料 [1]:51Nod-1380-夹克老爷的逢三抽一 •题意 从长度为 n 的数组中抽取 $\frac{n}{3}$ 个不相邻的值使得加和最大(首尾也不能同时取) •题解 贪心选择当前 ...
- requires php ~7.1 -> your PHP version (7.0.18) does not satisfy that requirement
一个大兄弟本地用了 PHP 7.1 进行开发,而我本地是 PHP 7.0, 于是悲剧发生了. composer install 之后报错 Loading composer repositories w ...
- 51nod 1281山峰和旗子
1281 山峰和旗子 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 用一个长度为N的整数数组A,描述山峰和山谷的高度.山峰需要满足 ...
- 【33.18%】【hdu 5877】Weak Pair (3种解法)
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Total Submissi ...
- 关于react打包之后静态资源加载错误的问题
之前在打包react项目时发现一些问题,打包出来后我的一部分png图标加载不出来,开发者模式发现他们的路径中莫名其妙混入了我在react-router路由中使用<Browserrouter> ...
- jenkins+Git+Gitlab+Ansible实现持续集成自动化部署静态网站(二)
引言:首先我们可以实现一键部署网站,但在实际生产环境网站部署完成之后,我们的开发隔三差五要修改下网站的内容,难道都要我们运维手动执行命令吗?没有一种方法使得开发人员修改完代码自己测试,部署上线呢,那这 ...
- 使用eclipse运行maven web项目 插件/非插件
一.使用插件 tomcat 8.5 tomcat-users.xml中添加这一行就ok <user username="admin" password="admin ...
- CUP计算资源争抢通过IIS启用处理器关联解决
由于业务的复杂性,我们在客户环境部署的时候,采用的是预装好在一台机器然后再把机器安装到客户环境,所以为了简单方便,我们把所有的服务都安装到一台机器上面了. 在正常的使用过程中是没有任何问题的.但是当有 ...