基本操作
string的特性描述:
int capacity()const; //返回当前容量(即string中不必增加内存即可存放的元素个数)
int max_size()const; //返回string对象中可存放的最大字符串的长度
int size()const; //返回当前字符串的大小
int length()const; //返回当前字符串的长度
bool empty()const; //当前字符串是否为空
void resize(int len,char c);//把字符串当前大小置为len,并用字符c填充不足的部分
.find()
查找
#include<iostream>
#include<string>
using namespace std;
int main()
{
//母串
string str_1 = "abcdefghigklmn";
string str_2 = "efgh";
string str_3 = "am";
//查找到 返回子串首字母在母串的当前下标(从零开始)
cout << str_1.find(str_2) << endl;//4
cout << str_1.find("efgh") << endl;//4
//未查找到 返回最大值 转化整型为-1
int place = str_1.find(str_3);
cout << place << endl; //-1
cout << str_1.find(str_3) << endl;//4294967295
cout << str_1.find("am") << endl;//4294967295
system("pause");
return 0;
}
.replace()
替换
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
//下标都是从零开始
//string &replace(int p0, int n0, const char *s);//删除从p0开始的n0个字符,然后在p0处插入串s
string str = "abcdefghijklmn";
str.replace(1, 2, "*#$@");
cout << str << endl;//a*#$@defghijklmn
//string &replace(int p0, int n0, const char *s, int n);//删除p0开始的n0个字符,然后在p0处插入字符串s的前n个字符
str = "abcdefghijklmn";
str.replace(1, 2, "*#$@",2);
cout << str << endl;//a*#defghijklmn
//string &replace(int p0, int n0, const string &s, int pos, int n);//删除p0开始的n0个字符,然后在p0处插入串s中从pos开始的n个字符
str = "abcdefghijklmn";
str.replace(1, 2, "*#$@", 1,3);
cout << str << endl; //a#$@defghijklmn
//string &replace(int p0, int n0, int n, char c);//删除p0开始的n0个字符,然后在p0处插入n个字符c
str = "abcdefghijklmn";
str.replace(1, 2, 3,'*');
cout << str << endl; //a***defghijklmn
//普及知识 丢人 记不住
//2<x<5,写成区间形式就是 (2,5),此为开区间;
//2≤x≤5,写成区间的形式就是[2,5] ,此为闭区间;
//2<x≤5,或2≤x<5,写成区间 形式就分别是 (2,5] 或[2,5),都叫做半开区间
system("pause");
return 0;
}
.insert()
插入
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
//函数在p0位置插入字符串s中pos开始的前n个字符
//string &insert(int p0, const char *s);
string str = "abcdefghijklmn";
str.insert(1, "@#$%");
cout << str << endl; //a@#$%bcdefghijklmn
//string &insert(int p0, const char *s, int n);
str = "abcdefghijklmn";
str.insert(1, "@#$%",2);
cout << str << endl;//a@#bcdefghijklmn
//string &insert(int p0, const string &s, int pos, int n);
str = "abcdefghijklmn";
str.insert(1, "@#$%", 2,3);//包前包后
cout << str << endl;//a$%bcdefghijklmn
system("pause");
return 0;
}