C++ STL String学习 (待续)
头文件:<string>
字符串类初始化:
string s1="aabbba";
s2=string("bbb");
string s3=string(s1); //互不影响
字符串类基本操作:
0、获得字符串长度
int len = s.length()
1、索引
char c = s[i]; //切片操作,每个s[i]都是字符
2、返回子串 (切片)
//s.substr()函数 返回一个子串
s1 = s.substr() //从下标为1字符开始一直到最后
s1 = s.substr(x,y) //从下标是x的字符开始,长度为y的字符串
3、插入字符串
//利用s.insert()函数插入字符串 s1=s.insert(,"abcd") //在下标为2的字符前插入字符串
4、删除部分
string s;
s.erase(x,y);/*删除从下标为x的字符开始,长度为y的字符串。并返回删除后的子串。*/ s="abcdefg";
s.erase(,); //删除从下标为2的字符开始,长度为3的字符串 //s=="abfg"
5、末尾插入字符串
string s="abcde";
string s1="thankyou";
string s2="";
//用法1:
s2= s.append("thankyou");
s2= s.append(s2);
s2= s + s1; //以上三条式子s2的值相等 //用法2:
s.append("howareyou",) //"howareyou"前2个字符加到s末尾 //用法3:
s.append("howareyou",,) /*从"howareyou"下标为2的字符开始,在s加入长度为3的字符串 (对添加的字符串切片后添加到原字符串)*/ //若插入单个字符:
char c;
s=s+c;
6、替换操作
s.replace(,,"abc")
/*下标为1到下标为3的字符组成的子串被替换为abc,若想替换单个字符,需要将被替换字符的下标写两次 如:s.replace(1,1,"abc")*/
7、反转字符串
string str;
cin >> str;
reverse(str.begin(), str.end()); //reverse函数 将str自身反转
cout << str << endl;
C++ STL String学习 (待续)的更多相关文章
- C++标准模板库Stand Template Library(STL)简介与STL string类
参考<21天学通C++>第15和16章节,在对宏和模板学习之后,开启对C++实现的标准模板类STL进行简介,同时介绍简单的string类.虽然前面对于vector.deque.list等进 ...
- 深入剖析 linux GCC 4.4 的 STL string
转自: 深入剖析 linux GCC 4.4 的 STL string 本文通过研究STL源码来剖析C++中标准模板块库std::string运行机理,重点研究了其中的引用计数和Copy-On-Wri ...
- 格式字符串分配stl::string
代码非常easy,不解释,直接在代码: #include <cstdio> #include <cstdarg> #include <iostream> using ...
- 浅谈C++ STL string容器
浅谈C++ STL string容器 本篇随笔简单讲解一下\(C++STL\)中\(string\)容器的使用方法及技巧. string容器的概念 其实\(string\)并不是\(STL\)的一种容 ...
- 转C++之stl::string写时拷贝导致的问题
前几天在开发某些数据结构到文件的 Dump 和 Load 功能的时候, 遇到的一个 bug . [问题复现] 问题主要出在 Load 过程中,从文件读取数据的时候, 直接使用 fread 的去操作 s ...
- 【黑马程序员C++ STL】学习记录
黑马程序员 2017 C++ STL 教程(STL 部分已完结) 基于黑马STL课程整理:黑马程序员2017C++STL教程 视频链接 专栏:本STL专栏目录 文章目录 黑马程序员 2017 C++ ...
- stl容器学习——queue,stack,list与string
目录 头文件 string 目录部分 1.string的定义及初始化 ① 用一个字符串给另一个字符串赋值 ②用字符串常量对字符串进行赋值 ③ 用n个相同的字符对字符串赋值 2.string的运算符及比 ...
- STL 小白学习(2) string
#include <iostream> using namespace std; #include <string> //初始化操作 void test01() { //初始化 ...
- C++ STL Vector学习 (待续)
头文件:<vector> 初始化 vector<Elementtype> vec(); /*Elementtype是数据类型,10代表长单为10*/ vector<Ele ...
随机推荐
- c++ 容器反转
// reverse algorithm example #include <iostream> // std::cout #include <algorithm> // st ...
- 菜单栏伸缩(附jquery-1.12.1.js)
Css: <style type="text/css"> .leftMenu { min-width:220px; width:268px; margin:40px a ...
- StringBuffer 拼写串
StringBuffer ssBuffer=new StringBuffer(); for (int i = 0; i < lista.size(); i++) { ssBuffer=ssBuf ...
- nginx 配置 nodejs 反向代理
upstream my_nodejs_upstream { server ; keepalive ; } server { listen ; server_name www.my-website.co ...
- 【Robot Framework 项目实战 04】基于录制,生成RF关键字及 自动化用例
背景 因为服务的迁移,Jira版本的更新,很多接口文档的维护变少,导致想要编写部分服务的自动化测试变得尤为麻烦,很多服务,尤其是客户端接口需要通过抓包的方式查询参数来编写自动化用例,但是过程中手工重复 ...
- RISC-V riscv64-unknown-elf
riscv64-unknown-elf 为 RISC-V指令集的交叉编译工具 以下环境在Liunx ubuntu x86_64 环境下进行,下面示例以生成32位文件为目标来操作使用. screen / ...
- [MyBatis]浅谈如何实现事务处理
要实现事务处理,就得从SqlSession中取出connection来,然后对connection采用setAutoCommit,commit,rollback等操作,最后的时候,不能像JDBC一样关 ...
- layer快速点击会触发多次回调
场景还原 测试同学反馈点击了一次操作,为什么会有两条操作记录? 我:???? 排查思路 查看日志,看一下是不是发了两次请求,果不其然啊: 并发了,同一时间发送了两次请求,出现了脏写. 原因 系统的co ...
- Caffe windows下安装攻略
Caffe 是一个高效的深度学习框架,鉴于不想折腾装个双系统,最近鼓捣了下用caffe源码在windows进行编译.非常感谢Yangqing Jia博士的caffe开源代码.Neil Z.Shao's ...
- Build Telemetry for Distributed Services之OpenTracing指导:C#
官网链接:https://opentracing.io/guides/ 官方微博:https://medium.com/opentracing Welcome to the OpenTracing G ...