C++STLstring

简介:
一、构造函数

1)、 string s;//创建一个空的字符串,相当于string s("");
2)、 string s1("hehe"); //<=>char charArray[] = "hehe"; string s1(charArray);用字符数组初始化
3)、 string s2("hehe", 2);//使用“hehe”的前两个字符来初始化S2
4)、 string s3(s2);//直接使用string对象s2来初始一个新的对象,调用复制构造函数
5)、 string s4(s1, 1, 2);//格式是string s4(s1, pos, n);用s1对象的从pos位置开始的n个字符来初始化
6)、 string s5(5, 'h');//格式string s5(n, ch);用n个字符ch来初始化一个string对象
7)、 string s6(s5.begin(), s5.end());//使用迭代器来指定一个范围内的元素来初始化一个对象
二、输入输出

1)、getline(cin, str);//从cin对象中提取一个串给str对象,直到遇到回车或者文件尾才结束

2)、cin >> str; //直接读取一个串,但是遇到空格、TAB、回车、文件尾就结束

3)、cout << str;//可以直接输出,因为<<已经被重载
三、重载操作符

1)、<、 <=、>、>=、 ==、!=  //可以直接使用来进行两个串的比较

2)、str = val; //赋值操作,val 可以是数组,string对象,字符串常量,但是不能是单个字符

3)、str += val; //字符串连接,把val接在str的后面,val可以是数组,string对象、字符串常量、单个字符

4)、str = val1 + val;//只要val、val1两者中有一个是string对象,就可以完成连接

5)、str[index];//使用下标访问单个字符:
四、常用的成员函数
1、----------------------------------------append()成员函数----------------------------------------------

1)、s.append(str);//参数为一个string对象

如:

    string s;
    string s1("hehe");
    s.append(s1);
    cout << s << endl;//打印hehe

2)、s.append(str, pos, n);//将str的从pos位置开始的n个字符追加到s的末尾

如:

    string s;
    string s1("hehe");
    s.append(s1, 1, 2);
    cout << s << endl;//打印eh

3)、s.append(charArray);//这个不多说,跟第一个差不多

4)、s.append(charArray, n);//看第二个来比较一下应该就知道了吧

如:

   string s;
    char ch[] = "hehe";
    s.append(ch, 2);
    cout << s << endl;//打印he

5)、s.append(n, ch);//在s的末尾追加n个字符ch,这个不举例了,很简单的

2、----------------------------assign()成员函数----------------------------

1)、s1.assign(s);//将s的备份复制给s1

如:

   string s("hehe");
    string s1;
    s1.assign(s);
    cout << s1 << endl;//打印hehe

2)、s.assign(str, pos, n);//将str的从pos位置开始的n个字符复制给s,这个不举例,很容易看懂的

3)、s.assign(charArray);

4)、s.assign(charArray, n);//要n字符而已

5)、s.assign(n, ch);//跟append(n, ch)比较

6)、s.assign(str.begin(), str.end());//用迭代器指定一个范围来复制给s
3、------------------------compare()成员函数----------------------------------------------------------------------

注:下面这些除了不容易理解的会给出例子之外,其他都不多说

说明:比较的原理是按照字典顺序,逐个比较的,如果s > str,返回正数,

如果s < str,返回负数; 如果s == str,返回0

1)、s.compare(str); //s与str比较

2)、s.compare(charArray);//s与charArray比较

3)、s.compare(pos, n, str);//s与str中从pos开始的N个字符比较

4)、s.compare(pos, n, charArray);//s与charArray中从pos开始的N个字符比较

5)、s.compare(pos1, n1, str, pos2, n2);//s中从pos1位置开始的n1个字符与str中从pos2开始的n2个字符比较

6)、s.compare(pos1, n1, charArray, pos2, n2);//s中从pos1位置开始的n1个字符与charArray中从pos2开始的n2个字符比较

4、------------------------c_str()、data()成员函数----------------------------------------------------------------------

1)、s.c_str();//返回以'\0'结束的C风格字符数组

2)、s.data();//返回不以'\0'结束的字符数组

5、------------------------erase()成员函数----------------------------------------------------------------------

1)、s.erase(pos, n);//删除从pos开始的n个字符

如:

    string s("hehe");
    s.erase(2, 2);
    cout << s << endl;//打印he

2)、s.erase(iter);//删除迭代器iter指定的字符

6、------------------------clear()、empty()、capacity()成员函数----------------------------------------

1)、s.empty();//判断串是否为空

2)、s.clear();//使s成员空串

3)、s.capacity();//返回串s的容量

7、------------------------find()成员函数-------------------------------------------------------------------------

1)、s.find(str, pos);//在s中从pos位置开始匹配,匹配到就返回第一个匹配到的位置,否则返回string::npos

2)、s.find(charArray, pos);//在s中从pos位置开始匹配,匹配到就返回第一个匹配到的位置,否则返回string::npos

3)、s.find(charArray, pos, n);//在s中从pos位置开始匹配,最多匹配n个字符,匹配到就返回第一个匹配到的位置,否则返回string::npos

8、------------------------find_first_of()成员函数--------------------------------------------------------------

1)、s.find_first_of(str, pos);//从s的pos位置开始匹配,返回任意一个匹配到的字符的位置,否则返回npos

2)、s.find_first_of(ch, pos);//从s的pos位置开始匹配,返回第一个与ch匹配的字符的位置,否则返回npos

3)、s.find_first_of(charArray, pos);//从s的pos位置开始匹配,返回任意一个匹配到的字符的位置,否则返回npos

4)、s.find_first_of(charArray, pos, n);//从s的pos位置开始匹配,最多匹配n个字符,返回任意一个匹配到的字符的位置,否则返回npos

9、------------------------find_first_not_of()成员函数--------------------------------------------------------------

1)、s.find_first_not_of(str, pos);//从s的pos位置开始匹配,返回任意一个没有匹配到的字符的位置,否则返回npos

2)、s.find_first_not_of(charArray, pos);//从s的pos位置开始匹配,返回任意一个没有匹配到的字符的位置,否则返回npos

3)、s.find_first_not_of(charArray, pos, n);//从s的pos位置开始匹配,最多匹配n个字符,返回任意一个没有匹配到的字符的位置,否则返回npos

4)、s.find_first_not_of(ch, pos);//从s的pos位置开始匹配,返回第一个与ch不匹配的字符的位置,否则返回npos
10、------------------------find_last_of()成员函数--------------------------------------------------------------

1)、s.find_last_of(str, pos);//返回最后一个匹配到的任意一个字符的位置

2)、s.find_last_of(charArray, pos, n);//返回最后一个匹配到的任意一个字符的位置,匹配从pos位置开始,最多匹配n个字符

11、------------------------find_last_not_of()成员函数--------------------------------------------------------------


1)、s.find_last_not_of(str, pos);//返回最后一个没有匹配到的任意一个字符的位置

2)、s.find_last_not_of(charArray, pos, n);//返回最后一个没有匹配到的任意一个字符的位置,匹配从pos位置开始,最多匹配n个字符

3)、s.find_last_not_of(ch, pos);//返回最后一个与ch不匹配的任意一个字符的位置

4)、s.find_last_not_of(charArray, pos);//返回最后一个没有匹配到的任意一个字符的位置

//这里不在书写其他了,真没有心情了。我真的很想生气,这CSDN竟然点发表,保存都没有反映,结果点错舍弃。又得重写一扁,

下面的不在讲了。



目录
相关文章
|
9月前
|
人工智能 自然语言处理 文字识别
阿里推出AnyText: 解决AI绘图不会写字的问题,可以任意指定文字位置,且支持多国语言!
【2月更文挑战第17天】阿里推出AnyText: 解决AI绘图不会写字的问题,可以任意指定文字位置,且支持多国语言!
527 2
阿里推出AnyText: 解决AI绘图不会写字的问题,可以任意指定文字位置,且支持多国语言!
|
存储 小程序 Unix
《操作系统真象还原》——0.28 MBR、EBR、DBR和OBR各是什么
MBR和EBR是分区工具创建维护的,不属于操作系统管理的范围,因此操作系统不可以往里面写东西,注意这里所说的是“不可以”,其实操作系统是有能力读写任何地址的,只是如果这样做的话会破坏“系统控制权接力赛”所使用的数据,下次开机后就无法启动了。
3918 0
|
5月前
|
存储 Serverless API
托管及使用专属智能语音模型CosyVoice
CosyVoice是一款先进的声音合成模型,支持声音克隆与情感控制等功能,在教育、客服、游戏等领域有广泛应用。本文详细介绍如何在阿里云Serverless平台上部署CosyVoice应用,比如使用函数计算平台快速搭建。并且提供API调用方法及本地调试步骤,同时还介绍如何通过挂载NAS实现持久化存储,以及更新模型和定制后端服务的方法。
1136 13
|
消息中间件 存储 Cloud Native
云原生中间件RocketMQ-消费者消费模式之广播模式
云原生中间件RocketMQ-消费者消费模式之广播模式
1010 12
|
NoSQL Java 关系型数据库
想要入职大厂,应该如何准备八股文?方法论分享!
想要入职大厂,应该如何准备八股文?方法论分享!
342 0
|
传感器 机器学习/深度学习 固态存储
3D检测界的“YOLO” | 将PointPillars优化16倍,还能很好的控制精度,非常香!!!
3D检测界的“YOLO” | 将PointPillars优化16倍,还能很好的控制精度,非常香!!!
543 0
3D检测界的“YOLO” | 将PointPillars优化16倍,还能很好的控制精度,非常香!!!
西门子S7-200 SMART PLC基本操作、如何查看PLC信息、如何设置PLC日期和时间
上篇文章中我们学习了西门子S7-200 SMART状态图表的使用以及如何创建、监视、强制、趋势显示,本篇我们来介绍在编程软件STEP7-Micro/WIN SMART中PLC基本操作、查看PLC信息以及PLC修改设置日期和时间。
西门子S7-200 SMART PLC基本操作、如何查看PLC信息、如何设置PLC日期和时间
|
存储 程序员 编译器
Python语言基本语法元素
Python语言采用严格的缩进来表示程序逻辑。也就是我们所说的Python程序间的包含与层次关系。一般代码不要求缩进,顶行编写且不留空白。在if、while、for、def、class等保留字所在完整语句后通过英文的“:”结尾并在之后行进行缩进,表明后续代码与紧邻无缩进语句的所属关系。
375 0
Python语言基本语法元素
|
存储 弹性计算 Linux
什么是阿里云云服务器ecs?为什么要选择使用阿里云ECS服务器呢?
什么是阿里云服务器ecs?要了解什么是阿里云服务器ECS,首先我们就要确定什么是云服务器。Elastic Compute Service(简称ECS,中文称为云服务器)是阿里云提供的一种基础云存储和云计算服务。
987 0
什么是阿里云云服务器ecs?为什么要选择使用阿里云ECS服务器呢?
|
大数据 云计算
阿里云大数据分析师认证是什么,apc证书含金量如何
阿里云大数据分析师认证也就是acp认证,这个认证是目前很火的一个认证,您如果想要考证,可以了解一下这个证书,目前大数据行业非常火,您如果想要转行,或者想要提升自己的能力,可以试一试这个证书,拿到这个证书之后,您一定能收到更好的公司邀约,快去试试吧。想要考证可以联系小编或者联系认证大使,我们可以帮助您快速考取证书,让您的职业生涯更上一层楼。
2141 0
阿里云大数据分析师认证是什么,apc证书含金量如何

热门文章

最新文章