C++STL中的string的常用API

前言

string其实就是在堆山new出来的一个字符串数组通过,类包装、迭代器以及算法包装起来的一个容器模板

一、string的构造函数

在这里插入图片描述
在这里插入图片描述

二、string的运算符以及修改操作接口

1、运算符

在string模板类中,定义了运算符,如==、<、>、>=、<=、+,+=、[]等运算符
对于比较大小来说就是,通过ascII来比较的和c比较字符串的用法是一样的这里是关于c语言字符串比较的文章
在这里插入图片描述
那对于+,+=这些运算符来说就是在字符串后面追加内容:
但是尽量少用+因为在底层的operator+是传值,如果大量使用会有很多地方有浅拷贝
在这里插入图片描述
假设需要访问一个字符串里面的所有字符,就可以使用[]:
在这里插入图片描述
s1.size(),可以返回字符串的长度

2、追加接口

在string中有push_back,append等追加接口:
push_back(),它的作用是在string后追加一个字符
在这里插入图片描述
在这里插入图片描述
append则是在string后面追加一个字符串
在这里插入图片描述
在这里插入图片描述
replace(n1,n2,string),把n1到n2位置的字符串用string替换
在这里插入图片描述

3、删除接口

有追就肯定有删除,删除就可以用到pop_back()
在这里插入图片描述
或者erase(),等删除内容的接口

4、查找接口

c_str(),string的底层有一个char str的成员,这个接口就可以放回这个字符串的地址,这样放回后可以查看到这个字符串*
在这里插入图片描述
find(需要查找的字符),find()函数都是是查找到指定的字符返回这个指定字符的下标位置,默认是从前完后找rfind就是默认从后往前找
在这里插入图片描述

在这里插入图片描述

5、转换字符串

to_string(),可以将非字符串的值转换成字符串
在这里插入图片描述

6、截取字符串到新的字符串

substr(n1,n2),从n1的下标位置开始算到n2的数量个字符串包括n1
在这里插入图片描述

三、string管理容量的接口

1、size()

size(),是用来计算字符串长度的接口,计算长度的时候是不计算’/0’的
在这里插入图片描述

2、length()

length(),也是用来计算字符串长度的结构,计算长度的时候也是不计算’/0’
在这里插入图片描述

3、capacity()

capacity(),是string用来查看底层string数组空间大小的一个接口,同时控制着扩容机制
在这里插入图片描述
在这里插入图片描述
当字符串的size大小超过了capacity,就会发生扩容

4、reserve()

reserve(size_t n),这个接口的作用是提前给string字符串开好空间 而且这个提起开好的空间很大时比size_t n大的:
在这里插入图片描述
如果sizt_t n的值小于capacity一般情况下是不会缩容的。

5、resize()

resize,是改变字符串的有效字符,有效字符那就说明会改变string的size,并且当resize中的size_t n的值大于capacity的时候就会发生扩容,小于capacity并不会缩容即不会改变底层空间的大小
在这里插入图片描述
resize(size_t n),这个接口是改变字符串的有效长度,并且将大于capacity之后扩容出来的空间用’0’来初始化
在这里插入图片描述
resize(size_t n,char c),这个接口是改变字符串的有效长度,并且将大于capacity之后扩容出来的空间用c来初始化
在这里插入图片描述

6、 clear()

clear(),会清理string字符串中的内容,但是不会改变string底层的容量
在这里插入图片描述
在这里插入图片描述

7、empty()

这个接口就是判断字符串是不是空的一个接口。
在这里插入图片描述

四、string类的遍历

1、operator[]

因为operator[]会返回,下标指定的字符,
在这里插入图片描述

2、迭代器 (iterator)遍历

迭代器它类似指针,但是对于不同的容器迭代器的呈现方式是不一样的
对于string来说,迭代器就类似于一个指针的东西,因为在string类中有以下三个最基础的成员:
char* str,size_t size;size_t capacity;
而string的迭代器就是返回了str字符串的首元素地址
在这里插入图片描述
在这里插入图片描述

Java String 类型 API 测试代码 1.String和char[]之间的转换 toCharArray(); 2.String和byte[]之间的转换 getBytes() Arrays工具类 : Arrays.toString(names) StringString replace(char oldChar, char newChar) String replace(CharSequence target, CharSequence replacement) String[] split(String regex) boolean contains(CharSequence s):当且仅当此字符串包含指定的 char 值序列时,返回 true int indexOf(String str):返回指定子字符串在此字符串第一次出现处的索引 int indexOf(String str, int fromIndex):返回指定子字符串在此字符串第一次出现处的索引,从指定的索引开始 int lastIndexOf(String str):返回指定子字符串在此字符串最右边出现处的索引 int lastIndexOf(String str, int fromIndex):返回指定子字符串在此字符串最后一次出现处的索引,从指定的索引开始反向搜索 boolean endsWith(String suffix):测试此字符串是否以指定的后缀结束 boolean startsWith(String prefix):测试此字符串是否以指定的前缀开始 boolean startsWith(String prefix, int toffset):测试此字符串从指定索引开始的子字符串是否以指定前缀开始 int length():返回字符串的长度: return value.length char charAt(int index): 返回某索引处的字符return value[index] boolean isEmpty():判断是否是空字符串:return value.length == 0 String toLowerCase():使用默认语言环境,将 String 的所有字符转换为小写 String toUpperCase():使用默认语言环境,将 String 的所有字符转换为大写 String trim():返回字符串的副本,忽略前导空白和尾部空白 boolean equals(Object obj):比较字符串的内容是否相同 boolean equalsIgnoreCase(String anotherString):与equals方法类似,忽略大小写 String concat(String str):将指定字符串连接到此字符串的结尾。 等价于用“+” String substring(int beginIndex):返回一个新的字符串,它是此字符串的从beginIndex开始截取到最后的一个子字符串。 String substring(int beginIndex, int endIndex) :返回一个新字符串,它是此字符串从beginIndex开始截取到endIndex(不包含)的一个子字符串。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>