头文件:<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学习 (待续)的更多相关文章

  1. C++标准模板库Stand Template Library(STL)简介与STL string类

    参考<21天学通C++>第15和16章节,在对宏和模板学习之后,开启对C++实现的标准模板类STL进行简介,同时介绍简单的string类.虽然前面对于vector.deque.list等进 ...

  2. 深入剖析 linux GCC 4.4 的 STL string

    转自: 深入剖析 linux GCC 4.4 的 STL string 本文通过研究STL源码来剖析C++中标准模板块库std::string运行机理,重点研究了其中的引用计数和Copy-On-Wri ...

  3. 格式字符串分配stl::string

    代码非常easy,不解释,直接在代码: #include <cstdio> #include <cstdarg> #include <iostream> using ...

  4. 浅谈C++ STL string容器

    浅谈C++ STL string容器 本篇随笔简单讲解一下\(C++STL\)中\(string\)容器的使用方法及技巧. string容器的概念 其实\(string\)并不是\(STL\)的一种容 ...

  5. 转C++之stl::string写时拷贝导致的问题

    前几天在开发某些数据结构到文件的 Dump 和 Load 功能的时候, 遇到的一个 bug . [问题复现] 问题主要出在 Load 过程中,从文件读取数据的时候, 直接使用 fread 的去操作 s ...

  6. 【黑马程序员C++ STL】学习记录

    黑马程序员 2017 C++ STL 教程(STL 部分已完结) 基于黑马STL课程整理:黑马程序员2017C++STL教程 视频链接 专栏:本STL专栏目录 文章目录 黑马程序员 2017 C++ ...

  7. stl容器学习——queue,stack,list与string

    目录 头文件 string 目录部分 1.string的定义及初始化 ① 用一个字符串给另一个字符串赋值 ②用字符串常量对字符串进行赋值 ③ 用n个相同的字符对字符串赋值 2.string的运算符及比 ...

  8. STL 小白学习(2) string

    #include <iostream> using namespace std; #include <string> //初始化操作 void test01() { //初始化 ...

  9. C++ STL Vector学习 (待续)

    头文件:<vector> 初始化 vector<Elementtype> vec(); /*Elementtype是数据类型,10代表长单为10*/ vector<Ele ...

随机推荐

  1. 查询Linux下文件格式.

    备忘 file 命令可以查一个文件的格式 readelf -h 可执行文件名. 可以查询可执行文件的详细的格式 向Windows中exeinfo 软件类

  2. MGR---mysql组复制多主模式

    组复制有两种模式:单主模式和多主模式. 1.在单主模式下,组复制具有自动选主功能,每次只有一个 server成员接受更新.2.在多主模式下,所有的 server 成员都可以同时接受更新. MGR的限制 ...

  3. POJ 1661 Help Jimmy ——(记忆化搜索)

    典型的记忆化搜索问题,dfs一遍即可.但是不知道WA在哪里了= =,一直都没找出错误.因为思路是很简单的,肯定是哪里写挫了,因此不再继续追究了. WA的代码如下,希望日后有一天能找出错误= =: —— ...

  4. easyUI的c if

    {field:'domdistrict2',title:'区县',width:100}, {field:'option',title:'操作',width:fixWidth(0.08),align:' ...

  5. elasticsearch中文分词器(ik)配置

    elasticsearch默认的分词:http://localhost:9200/userinfo/_analyze?analyzer=standard&pretty=true&tex ...

  6. 安装openssh-server

    以前在服务器上装过openssh-server,今天突然想把台式机也打开ssh服务,结果忘了咋弄,稍微百度了一下就弄好了,备忘一下,以后就不用各种百度了. 第一步,安装openssh-server( ...

  7. CentOS7.4搭建ftp服务

    1.使用yum安装vsftpd yum install vsftpd -y 2.安装完成后,启动 FTP 服务: service vsftpd start 3.配置ftp权限 目前 FTP 服务登陆允 ...

  8. Jenkins与gitlib实现自动化部署与持续构建

    Jenkins概念 Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台.这是一个免费的源代码,可以处理任何类型的构建或持续集成.集成Jenkins可以用于一些测试和 ...

  9. [Phoenix] Mix 命令

    mix phx.gen.html 命令生成模板: # 其中 name 和 age 是 schema 字段名称,后面跟的是类型 # 下面这样的写法,会生成 controller 和 service 层的 ...

  10. 如何捕捉Desried Capabilities中的appPackafe和appActive

    捕捉这两个参数需要借助adb工具的日志进行分析.ADB是一种命令行工具,用于PC和Android模拟器之前连接通信,集成在Android ADK中,默认在platfrom-tools目录下.在cmd运 ...