string容器
1 string基本概念
本质:
- string是c++风格的字符串,而string本质上是一个类
*string 和 char 的区别:
- char * 是一个指针
- string是一个类,类内部封装了char *,管理这个字符串,是一个char * 型的容器
特点
- string类内部封装了很多成员方法,例如查找find,拷贝copy,删除delete,插入insert
- string管理char * 所分配的内存,不用担心复制越界和取值越界,由类内部进行负责
2 string 构造函数
构造函数原型:
string()
// 创建一个空的字符串,例如 string str;string(const char* s)
//使用字符串 s 初始化string(const string& str)
//使用一个 string 对象初始化另一个 string 对象string(int n,char c)
//使用 n 个字符 c 初始化
示例:
1 |
|
3 string赋值函数
赋值的函数原型:
(1)
stirng& operator=(const char* s);
//char *类型字符串赋值给当前的字符串(2)
string& operator=(const string &s);
//把字符串 s 赋给当前的字符串(3)
string& operator=(char c);
//字符赋给当前的字符串(4)
string& assign(const char* s);
//把字符串 s 赋给当前的字符串(5)
string& assign(const char* s,int n);
//把字符串 s 的前n个字符赋给当前的字符串(6)
string& assign(const string &s);
//把字符串 s 赋给当前的字符串(7)
string& assign(int n,char c);
//用n个字符 c 赋给当前字符串
示例:
1 | void test02() { |
4 string字符串拼接
功能描述
实现在字符串末尾拼接字符串
函数原型
(1)
string& operator +=(const char* str);
// 重载+=操作符(2)
string& operator +=(const char c);
// 重载+=操作符(3)
string& operator +=(const string& str);
// 重载+=操作符(4)
string& append(const char *s);
//把字符串s连接到当前字符串结尾(5)
string& append(const char *s,int n);
//把字符串 s 的前n个字符连接到当前字符串结尾(6)
string& append(const string &s);
//同 operator +=(const string& str)(7)
string& append(const string &s,int pos,int n);
//字符串s中从pos开始的n个字符连接到字符串结尾
1 | void test03() { |
5 string查找和替换
功能描述
(1)查找:查找指定字字符串是否存在
(2)替换:在指定的位置替换字符串
函数原型
(1)
int find(const string& str ,int pos = 0) const;
//查找 str 第一次出现的位置,从pos开始查找(2)
int find(const char* s,int pos = 0) const;
//查找 s 第一次出现的位置,从pos开始查找(3)
int find(const char* s, int pos,int n) const;
//从pos位置查找s的前n个字符的第一个位置(4)
int find(const char c,int pos = 0) const;
//查找字符c第一次出现的位置(5)
int rfind(const string& str,int pos = npos) const;
//查找 str 最后一次出现的位置,从pos开始查找(6)
int rfind(const char* s,int pos = npos) const;
//查找 s 最后一次出现的位置,从pos开始查找(7)
int rfind(const char* s, int pos, int n) const;
//从pos位置查找s的前n个字符的最后一个位置(8)
int rfind(const char c,int pos = 0) const
//查找字符c最后一次出现的位置(9)
string& replace(int pos,int n, const string& str);
//替换从pos开始n个字符为字符串str(10)
string& replace(int pos, int n, const char* s);
//替换从pos开始n个字符为字符串s
示例:
1 | void test04() { |
6 string字符串比较
功能函数
字符串之间的比较
比较方式
字符串比较按照字符的ASCII码进行对比
= 返回 0 > 返回 1 < 返回 -1
函数原型
(1)int compare(const string &s ) const;
(2)int compare(const char *s ) const;
示例:
1 | void test05() { |
7 string字符存取
string单个字符存取方式
(1)
char& operator[] (int n)
(2)
char& at(int n)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15void test06() {
string str = "HELLO";
//读
for (int i = 0; i < str.size(); i++) {
cout << str[i] << " ";
}
cout << endl;
for (int i = 0; i < str.size(); i++) {
cout << str.at(i) << " ";
}
cout << endl;
str[0] = 'Q';
str.at(2) = 'W';
cout << str << endl;
}
8 string插入和删除
功能描述
对string字符串进行插入和删除字符操作
函数原型
(1)
string& insert(int pos,const char* s)
(2)
string& insert(int pos,const string& str)
(3)
string& insert(int pos,int n,char c)
(4)
string& erase(int pos,int n = npos)
//删除从Pos开始的n个字符
1 | void test07() { |
9 string子串
功能描述
从字符串获取想要的子串
函数原型
string substr(int pos = 0,int n = npos) const
返回由pos开始的n个字符组成的字符串
1 | void test08() { |