string的常见操作
- 访问
- 遍历
- 不需修改:
for(auto c : s)
- 需要修改:
for(auto &c : s)
for(decltype(s.size()) i = 0; i < s.size( ); i++ )
- 不需修改:
- 访问某个字符
- 下标运算符:
str[pos]
,接收的参数类型为size::size_type
。返回“引用”,所以可以修改。越界结果不可预知 str.at(pos)
:会检查下标pos
是否有效- 迭代器
- 下标运算符:
- 遍历
- 转化为字符数组
c_str()
- 获得子串
s.substr(pos)
:返回从pos开始的尾串。如果超出范围会抛出out_of_range异常s.substr(pos,n)
:返回从pos开始,长度为n的子串。超出范围则返回剩余所有部分
- 修改
- 插入
s.append(str)
:在字符串末尾插入str指向的字符串s.insert(pos,n,c)
:在pos之前插入n个字符cs.insert(pos,cstr)
:在pos之前插入字符指针cstr指向的字符串s.insert(pos1,s2,pos2,n)
:在s的pos1位置插入s2从pos2开始的n个字符
- 删除
s.erase(pos,n)
:从pos位置开始,删除n个字符,若n过大,则删完从pos开始的剩余字符
- 替换
s.replace(pos,n,str)
:将pos位置开始的n个字符删除,然后在pos位置处插入str指向的字符串
- 插入
- 搜索
- 搜索成功返回
string::size_type
类型的下标;搜索失败返回string::npos
string::npos
:static变量,const string::size_type
类型,初始化为-1
。由于是一个unsigned类型,因此这个初始值意味着npos
等于任何string最大的可能大小
s.find(args)
:查找s中args
第一次出现的位置s.rfind(args)
:在s中查找args中任何一个字符最后一次出现的位置(反向查找)s.find_first_not_of(args)
:在s中查找第一个不在args中的字符s.find_last_not_of(args)
:在s中查找最后一个不在args中的字符(反向查找)
- 搜索成功返回
- 比较
s.compare(args)
:可以传入字符串或字符指针,以及位置,长度等
- 数值转换
- 数值转字符串
to_string(val)
:val可以是任何算术类型
- 字符串转数字(
p
是size_t
类型变量,保存s
中第一个非数值字符的下标,默认为0
;b
表示转换所用的基数,默认为10
)- 转成整形
stoi(s,p,b)
stol(s,p,b)
stoul(s,p,b)
stoll(s,p,b)
stoull(s,p,b)
- 转成浮点数
stof(s,p)
stod(s,p)
stold(s,p)
- 转成整形
- 数值转字符串
string的常见操作的更多相关文章
- 【java】String类常见操作
秋招做题需要,总结String类常用api如下: 简单的:str.length().str.isEmpty().str.split(“;”)切割 1.字符串反转:借助StringBuilder/Str ...
- 面试题中关于String的常见操作
题目1: 将用户输入的一段话,每个单词的首字母大写, 每个单词之间的空格调整为只有一个,遇到数字,将数字与后一个单词用下划线 "_" 进行连接 题目2:将 i @@ am @@@ ...
- java string常见操作题
1. 每个基本类型封装类都有将string转换为基本数据类型的方法 对于非常大的数字请使用Long,代码如下 int age = Integer.parseInt("10"); ...
- C#路径/文件/目录/I/O常见操作汇总
文件操作是程序中非常基础和重要的内容,而路径.文件.目录以及I/O都是在进行文件操作时的常见主题,这里想把这些常见的问题作个总结,对于每个问题,尽量提供一些解决方案,即使没有你想要的答案,也希望能提供 ...
- 转:jQuery 常见操作实现方式
http://www.cnblogs.com/guomingfeng/articles/2038707.html 一个优秀的 JavaScript 框架,一篇 jQuery 常用方法及函数的文章留存备 ...
- jQuery 常见操作实现方式
一个优秀的 JavaScript 框架,一篇 jQuery 常用方法及函数的文章留存备忘. jQuery 常见操作实现方式 $("标签名") //取html元素 document. ...
- C#路径/文件/目录/I/O常见操作汇总<转载>
文件操作是程序中非常基础和重要的内容,而路径.文件.目录以及I/O都是在进行文件操作时的常见主题,这里想把这些常见的问题作个总结,对于每个问题,尽量提供一些解决方案,即使没有你想要的答案,也希望能提供 ...
- 【转】C#路径/文件/目录/I/O常见操作汇总
文件操作是程序中非常基础和重要的内容,而路径.文件.目录以及I/O都是在进行文件操作时的常见主题,这里想把这些常见的问题作个总结,对于每个问题,尽量提供一些解决方案,即使没有你想要的答案,也希望能提供 ...
- C#路径,文件,目录,I/O常见操作
C#路径,文件,目录,I/O常见操作 文件操作是程序中非常基础和重要的内容,而路径.文件.目录以及I/O都是在进行文件操作时的常见主题,这里想把这些常见的问题作个总结,对于每个问题,尽量提供 ...
随机推荐
- Mysql 查询一天中,每个小时数据的数量
SELECT HOUR(e.time) as Hour,count(*) as Count FROM error_log e WHERE e.date = '2017-09-02' GROUP BY ...
- mysql带有子查询的like查询
SELECT * FROM by_app_categories WHERE c_name LIKE CONCAT('%', (SELECT `name` FROM b_catelist WHERE t ...
- init()方法必须使用super.init(config)的原因--Servlet
原 因: 一个servlet在它的init()方法中传递它的ServletConfig实例,在其他的方法中却不可以.当一个servlet在 init()方法外需要调用config对象时就会产生问题.使 ...
- hihoCoder#1239 Fibonacci
#1239 : Fibonacci 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Given a sequence {an}, how many non-empty s ...
- uda 4.C++面向对象编程
Python vs C++ 对比课 在本课中,你将学习如何用 C++ 编写类.像以前的课程一样,你需要比较 Python 的编程方式和 C++ 中编程方式的不同. 我们直接看例子.下面是一个名为 ...
- uda 2.C++ 向量
向量与矩阵代数 学习得不错!你已经学习了大量 C++ 句法.你也许注意到了,使用 C++ 编程无疑比使用 Python 困难.C++ 专为快速执行而设计,使用这门语言,你可以采用许多不同方式达到同一结 ...
- Python深入:修改Python搜索路径
当Python执行import语句时,它会在一些路径中搜索Python模块和扩展模块.可以通过sys.path查看这些路径,比如: >>> import sys >>&g ...
- uni-app禁止滑动穿透
<view class="topWrapper" v-show="chooseShow" @click="chooseShow = false& ...
- UTF-8与UTF-8 BOM
在我们通常使用的windows系统中,我发现了一个有趣的现象.我新建一个空的文本文档,点击文件-另存为-编码选择UTF-8,然后保存.此时这个文件明明是空的,却占了3字节大小.原因在于:此时保存的编码 ...
- 怎么查看mysql 的binlog日志存放的位置
image.png 这个你可以看配置文件 启用了才有这样的记录默认是没有的 linux系统中的/etc/my.cnf my.cnf内容: log-bin = mysqlbin # 默认配置 一般放在/ ...