C++ string常用操作

Posted 晚风Sensei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ string常用操作相关的知识,希望对你有一定的参考价值。

写此文以便需要时查阅

字符串的初始化

这里介绍几种特殊的初始化方式,可能会比较少见。

string1(string2)

将字符串string2直接拷贝给string1

string s1 = "happy~day";
string s2(s1);

string(int length, char c)

将length个字符c组成的串赋值给string

string s3(10, 'b');

string(string s, int start, int length)

取s字符串从start位置开始的length个字符赋值给s6。若不填写length,取后面所有字符。

string s4 = "hello&world";
string s5(s4, 4);   //o&world
string s6(s4, 5, 3);//&wo

字符串处理

string.substr(int start, int length)

返回string从start位置开始的length长度的子串

(一)插入操作

string.insert(int index, string/char s)

在string的index位置插入字符或字符串

string s4 = "hello&world";
s4.insert(3, '#');
s4.insert(5, "*play*");

string.insert(int index, int length, char c)

在string的index位置插入length个字符c,只能是字符!

string s4 = "hello&world";
s4.insert(4, 3, 'O');

string.insert(int index, string s, int start, int length)

在string的index位置插入字符串s从start位置开始的长度为length的子串

string s4 = "hello&world";
s4.insert(5, "**C++**", 2, 3);

(二)删除操作

string.erase(int start, int length)

删除string字符串start位置开始的length个字符

string.erase(iterator)

删除迭代器所指的字符。迭代器是指使用string.begin()和string.end()

string.erase(iterator1, iterator2)

删除迭代器范围的字符,左闭右开

字符串的搜索操作

string.find(string/char s, int start, int len)

String str1 = "There is a string";

//查找字符'i'第一次出现的位置
cout << str1.find('i') << endl;
//从位置8开始查找字符's'
cout << str1.find('s', 8) << endl;
//从位置1开始查找字符串"ere"的前两个字符
cout << str1.find("ere", 1, 2) << endl;

string.rfind(string/char s)

查找字符串s最后一次出现的位置

字符串的比较

string.compare(string s)

String str2 = "Happy Birthday"
String str3 = "Happy-Birthday"
cout << str2.compare(str3) << enddl;
//str2 > str3 返回1
//str2 = str3 返回0
//str2 < str3 返回-1

字符串的转换

stoi(string s, int start, int b)

把字符串s从start位置开始转换成b进制的int类型

以上是关于C++ string常用操作的主要内容,如果未能解决你的问题,请参考以下文章

21个常用代码片段

面试常用的代码片段

js常用代码片段

更新:C++ 指针片段

C++快速上手string的使用,刨析string常用成员函数,体验到C++的快乐。

C++快速上手string的使用,刨析string常用成员函数,体验到C++的快乐。