C++中string类
string的构造函数的形式:
string str:生成空字符串
string s(str):生成字符串为str的复制品
string s(str, stridx):将字符串str中始于stridx的部分,复位构造函数的初值
string s(str, strbegin, strlen):将字符串str中始于strbegin、长度为strlen的部分作为字符串初值
string s(cstr):以C_string类型cstr作为字符串s的初值
string s(cstr, char_len):以C_string类型cstr的前char_len个字符串作为字符串s的初值
string str1; //生成空字符串
string str2("1234"); //生成"1234"的复制品
string str3("12345", 1, 3);//结果为"234"
string str4("123456", 5); //结果为"12345"
string str5(5, '1'); //结果为"11111"
string str6(str2, 2); //结果为"34"
大小和容量:
size()和length():返回string对象的字符个数,他们执行效果相同。
max_size():返回string对象最多包含的字符数,超出会抛出length_error异常
capacity():重新分配内存之前,string对象能包含的最大字符数
string s("1234567");
cout << "size=" << s.size() << endl;
cout << "length=" << s.length() << endl;
cout << "max_size=" << s.max_size() << endl;
cout << "capacity=" << s.capacity() << endl;
结果:
size=7
length=7
max_size=4294967294
capacity=15
compare() 函数,比较运算符:> , < , == , <=, >=
string A("aBcdef");
string B("AbcdEf");
string C("123456");
string D("123dfg");
int m = A.compare(B);
int n = A.compare(1, 5, B);
int p = A.compare(1, 5, B, 4, 2);
int q = A.compare(0, 3, D, 0, 3);
cout << "m=" << m << endl;
cout << "n=" << n << endl;
cout << "p=" << p << endl;
cout << "q=" << q << endl;result:
m=1
n=1
p=-1
q=1
assign()函数:直接给字符串赋值。
string str7("123456");
string str;
str.assign(str7);
cout << str << endl;
str.assign(str7, 3, 3);
cout << str << endl;
str.assign(str7, 2, str7.npos);
cout << str << endl;
str.assign(5, 'X');
cout << str << endl;
string::iterator itB = str7.begin();
string::iterator itE = str7.end();
str.assign(itB, --itE);
cout << str << endl << endl;
结果:
123456
456
3456
XXXXX
12345
erase():删除函数
sawp()函数:相互交换字符串
insert()函数:在字符串中某个位置插入其他字符串
str = "01234567";
str.insert(1, "abc");
cout << str << endl;//out:0abc1234567
str.insert(1, "edfg", 3);
cout << str << endl;//out:0edfabc123467
str = "01234";
str.insert(1, "abcde", 2, 3);
cout << str << endl << endl;//out:0cde1234
append()函数:在字符串最后面追加其他字符串。
replace()函数:用其他字符串替换字符串中的某个子串。
find()函数:从首部开始查找字符串,返回查找到的子串在字符串中的第一个字符的位置
rind()函数:从首部开始查找字符串,返回查找到的子串在字符串中的第一个字符的位置
find_first_of()函数:在源字符串搜索某字符串,返回被搜索字符串中第一个字符第一次出现的下标。
find_last_of()函数:功能同上,返回被搜索字符串中最后一个字符的下标。
string str = "hxh1323121678feifeihxhdian456";;
size_t index1 = str.find("hxh");
size_t index2 = str.find_last_of("hxh");
cout << index1 << "\t" << index2 << endl;
结果:
0 21
C++中string类相关推荐
- 标准C++中string类用法总结
2019独角兽企业重金招聘Python工程师标准>>> 相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好 ...
- 【持续更新】C++中string类使用总结
C++中string类的功能以及使用方法可类比于C语言中的字符数组,但是相互比较之下可谓是是有过之而无不及,实在是太方便,故留此贴总结日常学习所得经验. 智障blog,排版这么难???? 1. 创建字 ...
- Java中String类的方法及说明
String : 字符串类型 一.构造函数 String(byte[ ] bytes):通过byte数组构造字符串对象. String(char[ ] value):通过char数 ...
- C++面试中string类的一种正确写法
C++ 的一个常见面试题是让你实现一个 String 类,限于时间,不可能要求具备 std::string 的功能,但至少要求能正确管理资源.具体来说: 能像 int 类型那样定义变量,并且支持赋值. ...
- STL库中string类内存布局的探究
在STL中有着一个类就是string类,他的内存布局和存储机制究竟是怎么样的呢? 这就是建立好的string 可以看出,图中用黄色框框标注的部分就是主要区域 我们用来给string对象进行初始化的字符 ...
- Java中String类的concat方法___java的String字符串的concat()方法连接字符串和“+“连接字符串解释
Java中String类的concat方法 在了解concat()之前,首先需要明确的是String的两点特殊性. 长度不可变 值不可变 这两点从源码中对String的声明可以体现: private ...
- c++ 输出string_来讲讲Java中String 类的知识点
本文来总结一下Stirng 的有关知识点 1.String中的引用 String 可以通过new和构造方法来创建一个对象,用s来引用它(也就是相当于把asdf这个字符串赋值给s String s = ...
- 【转载】Java中String类的方法及说明
转载自:http://www.cnblogs.com/YSO1983/archive/2009/12/07/1618564.html String : 字符串类型 一.构造函数 String ...
- 在java中String类为什么要设计成final
在java中String类为什么要设计成final? - 胖胖的回答 - 知乎 https://www.zhihu.com/question/31345592/answer/114126087 转载于 ...
- 深究Java中string类不能改变的原因
说到不可变对象,大家想到的首先就是String类,但是,为什么String类不能改变,是大家所疑惑的,而且里面的误区也有很多,今天我们就来好好深究一下String类不能改变的原因吧! String不能 ...
最新文章
- 一款由css3和jquery实现的响应式设计导航
- 关于 htonl 和 ntohl 的实现
- hprose出现500: Internal Server Error
- 优雅地关闭资源,try-with-resource语法和lombok@Cleanup
- linux服务器的诗句迁移,使用scp命令在两台linux上对拷文件或者文件夹
- 怎么颈椎和秃头都扯上我,程序员:我太难了…
- 前端emojs_Emoji-Chat emoji表情包发送及显示兼容web端、移动端
- 斯坦福大学面向Tensorflow深度学习研究课程(2018)
- 在向服务器发送请求时发生传输级错误。
- Qt开发 之 Windows资源管理器模仿 并 小超越
- RS-485通信协议(ModBus版)
- 计算机错误1327,Win7系统电脑安装软件失败并提示错误1327解决办法
- 微信公众号客服咨询 php,微信公众平台开发之多客服模式-php语言(七)
- UniApp已经接了手机数据线,但运行工具警告 “没有检查到设备“ (华为手机为例 进行解决)
- vite项目(vue-ts)搭建常用插件引入方式
- 漏洞复现----6、Jenkins远程命令执行漏洞(CVE-2018-1000861)
- 上网课用哪种耳机好、长时间听网课耳机推荐
- 不用找,你想要的建筑场景游戏素材素材都在这里
- ubuntu wps缺少字体_一个字体:系统风汜霰汜源圆
- OpenCV-Python图像叠加