C++ STL(一)string的用法
# 1.string的用法
- string在<iostream>的头中就有,但是还是得用<string>的头
##### 构造函数
- str(const char* ch) 直接赋值
- str(size_t n,char ch) 赋值n个ch字符
- str(char* ch,size_t n) 取ch指针的前n位
- str(string& str,size_t index,size_t length) 从index开始取length位
- str(string& str) 拷贝构造
##### 函数
- char* c_str() 返回一个char*
- int size() 返回长度
- char at(int index) 返回字符,越界会进行try catch捕获异常
- void insert(int index,string str)在index位置插入str
- void insert (int index,string str,int start,int end)在index位置插入截取str的
- void insert (int index,int count,char ch)在index位置插入count个的ch
- void append(string s) 增加字符串
- void erase(int start,int end) 擦除
- int compare(string str) 比较两个对象,可以比较
- int find(string str) str子串的下标
- int find(string str,int startIndex) 从startIndex开始找一个子串下标
- string substr(int startIndex,int endIndex) 从startIndex到endIndex取子串
- void swap(string s) 交换两个string
##### 运算符
- [int index] 获得索引位置字符
- << 输出
- \+ 连接
- == 进行判断是否相等
- \>=,<=,>,<都可以使用
##### 迭代器
```
#include <iostream>
#include <string>
using namespace std;
void funIterator(){
string s="hello world";
string::iterator ite=s.begin();
while(ite!=s.end()){
cout<<*ite<<" ";
ite++;
}
}
int main(int argc, char** argv) {
funIterator();
return 0;
}
```
iterator相当于一个指针
##### 算法
**foreach**
```
#include <iostream>
#include <string>
#include <algorithm>
void fun(char c){
cout<< c;
}
void funForEach(){
string str("abcdefg");
for_each(str.begin(),str.end(),fun);
}
int main(int argc, char** argv) {
funForEach();
return 0;
}
```
所有算法包含在algorithm,for_each循环的用法:
for_each(str.begin(),str.end(),fun);
fun的参数是开始结束元素数组的单个元素
**sort**
```
string str("gfde");
sort(str.begin(),str.end());
```
从小到大排列
```
string str("gfde");
sort(str.begin(),str.end(),greater<char>());
```
从大到小排列`
C++ STL(一)string的用法的更多相关文章
- STL string 常见用法详解
string 常见用法详解 1. string 的定义 //定义string的方式跟基本数据类型相同,只需要在string后跟上变量名即可 string str; //如果要初始化,可以直接给stri ...
- POJ 3096 Surprising Strings(STL map string set vector)
题目:http://poj.org/problem?id=3096 题意:给定一个字符串S,从中找出所有有两个字符组成的子串,每当组成子串的字符之间隔着n字符时,如果没有相同的子串出现,则输出 &qu ...
- STL 之 map的用法
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候 ...
- STL之sstream的用法
STL之sstream的用法 说在前面: 库定义了三种类:istringstream.ostringstream和stringstream,分别用来进行流的输入.输出和输入输出操作.另外,每个类都有一 ...
- C#中string.format用法详解
C#中string.format用法详解 本文实例总结了C#中string.format用法.分享给大家供大家参考.具体分析如下: String.Format 方法的几种定义: String.Form ...
- String.format()用法
package junit.test; import java.util.Date; import java.util.Locale; import org.junit.Test; pub ...
- java中String的用法
String的用法很活跃,也用到的很多.可以根据自己的需要查询API.这里只有concat和substring,indexof的用法 class TestString { public static ...
- C#中string.Format 用法详解
这篇文章主要介绍了C#中string.format用法,以实例形式较为详细的讲述了string.format格式化的各种用法,非常具有实用价值,需要的朋友可以参考下 本文实例总结了C#中string. ...
- Oracle中dbms_random.string 的用法
转载:https://blog.csdn.net/simonchi/article/details/8657787 DBMS_RANDOM.STRING(var1,var2) 这个函数有两个参数 va ...
随机推荐
- vue的周期函数
beforeCreate(创建前) created(创建后) beforeMount(载入前) mounted(载入后) beforeUpdate(更新前) updated(更新后) beforeDe ...
- 阶段3 2.Spring_03.Spring的 IOC 和 DI_11 set方法注入
复制AccountServiceImpl类改名叫做AccountServiceImpl2 生成三个属性值的set方法.注入只需要set方法,并不需要get方法 配置bean,用到property这个标 ...
- 阶段3 2.Spring_03.Spring的 IOC 和 DI_4 ApplicationContext的三个实现类
如何找到接口的实现类 BeanFactory是核心容器的顶层接口 查看接口的实现类 接下来介绍这三个实现类 把bean.xml复制到桌面上面 运行测试程序 实际更常用ClassPathXmlAppli ...
- java 接口default的判断规则
1.前言 jdk1.8中新增加了default关键字,就是在接口中可以增加默认实现. 因为改动接口所有的实现类都要改动,所以增加了default关键字后不需要修改其他类,默认给所有实现类增加了方法. ...
- 微信小程序资源整理
微信小程序相关的文档.教程.开源项目等资源的整理,以便于开发学习使用. —— —— 收录仅作个人学习使用,涉及侵权行为及时联系: maple_6392@163.com 项目地址:GitHub | 码云 ...
- Linux 下文件句柄数的查询学习
1. 查看 所有进程的 打开的句柄数 lsof -n|awk '{print $2}'|sort|uniq -c |sort -nr|more 效果为: 2. 查看某一个进程内的 文件信息 lsof ...
- Objective-C中的自动释放池
自动释放池块@autoreleasepool 自动释放池块在MRC和ARC下都可以使用.在MARC下,为了将自动释放池块内部的变量放入自动释放池,需要手动调用autorelease方法:在ARC下,只 ...
- Go语言的变量和常量(三)
我想吐槽下网上的很多所谓的“零基础教程”,因为那根本不算零基础.就拿语言教程来说,一上来就说怎么定义变量的怎么算零基础呢?零基础应该是先告诉你啥叫变量. 所以我从不起零基础的标题.我这也不是教程,只是 ...
- springboot笔记-文件上传
使用 Spring Boot 和 Thymeleaf 上传文件 Spring Boot 利用 MultipartFile 的特性来接收和处理上传的文件,本示例前端页面使用 Thymeleaf 来处理. ...
- C++中的类型识别
1,为什么会提出类型识别概念呢? 1,为什么在 C 语言中没有提出这个概念呢,就是因为在 C++ 中引入了面向对象的特性,面向对象里面有一个非常重要的原则就是赋值兼容性原则: 2,在面向对象中可能出现 ...