之前两篇文章 我们学习了
assign、at、append函数
find、rfind、replace、compare函数
这些函数。接下来让我们继续学习其他函数
两个参数
pos1,截取的开始位置
len,截取的子串长度
作用是在字符串中截取一段长度为len的子串
下面给出一个例子
#include
using namespace std;
int main()
{
string str = "Hello World";
string ss = str.substr(2, 3);
cout << ss;
return 0;
}
两个参数
pos1:插入的位置
str:要插入的字符串
下面给出一个例子:
#include
using namespace std;
int main()
{
string str = "Hello World";
string a;
a = str.insert(3, "hh");
cout << a << endl;
return 0;
}
三个参数:
pos1:要插入的位置
n:要插入的元素个数
ch:要插入的元素
下面给出一个例子:
#include
#include
using namespace std;
int main()
{
string str = "Nice To Meet You";
string a, b;
a = str.insert(0,"Hello ");
cout << a << endl;
b = str.insert(str.size(), 3, 'h');
cout << b << endl;
return 0;
}
作用是删除字符串中的字符
使用erase函数需要包含algorithm头文件
两个参数:
pos1:下标,即开始删除的位置
n:删除的元素个数
下面给出一段代码:
#include
using namespace std;
int main()
{
string str1 = "Hello World";
string a;
a = str1.erase(0,3);
cout << a << endl << str1 << endl;
return 0;
}
pos:下标,要删除元素的下标
作用是删除pos位置的元素
下面给出一段代码:
#include
#include
using namespace std;
int main()
{
string str1 = "Hello World";
string a;
//a = str1.substr(0, 1); // 取得要被删除的部分
str1.erase(str1.begin()); // 在原字符串上删除这部分
cout << a << endl << str1 << endl; // 输出结果
return 0;
}
当你尝试这么写的时候
String a;
a = str1.erase(str1.begin());
程序会报错。
因为erase函数会删除给定位置开始到字符串末尾的所有字符,但它并不返回一个新的字符串。而是直接在原字符串上进行修改,并返回对原字符串的引用。
所以a其实是空的
pos1:删除的起始位置
pos2:删除的结束位置
下面给出一段代码:
#include
#include
using namespace std;
int main()
{
string str1 = "Hello World";
str1.erase(str1.begin() + 1, str1.end() - 1);
cout << str1 << endl;
return 0;
}
介绍到这里,string中的基本函数就学习完了
希望你有所收获 我们下篇文章见~