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>());
```
从大到小排列`

原文地址:https://www.cnblogs.com/littlepage/p/10989600.html

时间: 2024-10-31 14:23:07

C++ STL(一)string的用法的相关文章

STL 之 map的用法

Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道.这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有序的好处. 下面举例说明什么是一对一的数据映射.比如一个班级中,每个学生的学号跟他的姓名就存在着一一

(转)STL中set的用法

转载自here 1.关于set map容器是键-值对的集合,好比以人名为键的地址和电话号码.相反地,set容器只是单纯的键的集合.例如,某公司可能定义了一个名为bad_checks的set容器,用于记录曾经给本公司发空头支票的客户.当想知道一个值是否存在时,使用set容器是最适合的.除了两种例外情况,set容器支持大部分的map操作,这两种例外是:set不支持下标操作,而且也没有mapped_type类型,在set容器中,value_type不是pair类型,而是与key_type相同的类型.它

STL中的map用法详解

STL中map用法详解 说明:如果你具备一定的C++ template知识,即使你没有接触过STL,这个文章你也应该可能较轻易的看懂.本人水平有限,不当之处,望大家辅正. 一.map概述 map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道.这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),

STL list链表的用法详解(转)

本文以List容器为例子,介绍了STL的基本内容,从容器到迭代器,再到普通函数,而且例子丰富,通俗易懂.不失为STL的入门文章,新手不容错过! 0 前言 1 定义一个list 2 使用list的成员函数push_back和push_front插入一个元素到list中 3 list的成员函数empty() 4 用for循环来处理list中的元素 5 用STL的通用算法for_each来处理list中的元素 6 用STL的通用算法count_if()来统计list中的元素个数 7 使用count_i

C#中string.format用法详解 [转载]

这篇文章主要介绍了C#中string.format用法,以实例形式较为详细的讲述了string.format格式化的各种用法,非常具有实用价值,需要的朋友可以参考下 本文实例总结了C#中string.format用法.分享给大家供大家参考.具体分析如下: String.Format 方法的几种定义: String.Format (String, Object) 将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项.String.Format (String, Obj

String.Format用法

1.作为参数   名称 说明   Format(String, Object) 将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项.   Format(String, array<>[]()[]) 将指定 String 中的格式项替换为指定数组中相应 Object 实例的值的文本等效项.   Format(IFormatProvider, String, array<>[]()[]) 将指定 String 中的格式项替换为指定数组中相应 Object

C#中string.Format 用法详解

这篇文章主要介绍了C#中string.format用法,以实例形式较为详细的讲述了string.format格式化的各种用法,非常具有实用价值,需要的朋友可以参考下 本文实例总结了C#中string.format用法.分享给大家供大家参考.具体分析如下: String.Format 方法的几种定义: String.Format (String, Object) 将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项.String.Format (String, Obj

C#里sqlDataAdapter.fill(DataSet,String)的用法

第二个参数 String是指定DataSet 里表的名字,例如 sqlDataAdapter.fill(DataSet,"学生表") 指定后,以后就可以这样调用这张表 DataSet.Tables["学生表"] 第二个参数可以不要的,如果不要第二个参数 String 那你调用这张表只能通过索引号,例如 DataSet.Tables[0] 如果填充的表比较多的话,用这个参数比较容易管理和调用. C#里sqlDataAdapter.fill(DataSet,String

String的用法总结-swift

学习swift的String用法总结 学习了swift的String的用法之后感觉比OC的太直接了,不需要直接的初始化.类型声明也不用区分可变和不可变的类型,基本上就是属于哪里需要就在哪里直接写就可以的状态 override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. print("viewDidLoad"