.1 基本概念
C语言中字符串为char *
C++中字符串为string
本质是一个类,类内封装了char *,是一个char *型容器
.2 构造函数
- 创建一个空的字符串
string();
- 使用字符串S初始化
string(const char* s);
- 使用一个string对象初始化另一个
string(const string & str);
- 使用n个字符c初始化
string(int n, char c);
.3 赋值操作
赋值操作有多种
string& operator=(const char* s);
char *类型字符串赋给当前字符串string& operator=(const string &s)
把字符串S赋给当前字符串string& operator=(char c)
单个字符c赋给当前字符串string& assign(const char* s)
char* 类型字符串string& assign(const char* s,int n)
字符串s前n个字符string& assign(const string& s)
字符串S赋给string& assign(int n,char c)
n个字符c
string str1;
str1 = "hello world!";
cout << "str1=" << str1 << endl;
string str2;
str2 = str1;
cout << "str2=" << str2 << endl;
string str3;
str3 = 'c';
cout << "str3=" << str3 << endl;
string str4;
str4.assign("welcome!");
cout << "str4=" << str4 << endl;
string str5;
str5.assign("welcome!", 3);
cout << "str5=" << str5 << endl;
string str6;
str6.assign(str5);
cout << "str6=" << str6 << endl;
string str7;
str7.assign(4, 'a');
cout << "str7=" << str7 << endl;
.4 字符串拼接操作
可使用+=
或append()
函数
.5 查找和替换操作
查找到返回下标,未找到返回-1
find为从左向右查找,rfind为从右往左查找
.6 字符串比较
使用函数compare();
,比较按字符的ASCII码。
相等返回0 ,>返回1, <返回-1
.7 字符存取
对sring中单个字符的存取
- 重载[],通过数组下标的方式获取
- 通过
at(int n)
函数
.8 插入和删除
.9 子串获取
从string获取想要的子串,substr(int pos,int n)
返回从pos开始的n个字符组成的字符串
string str1 = "hello world!";
cout << "str1=" << str1 << endl;
string str2;
str2=str1.substr(0, 5);
cout << "str2=" << str2 << endl;
与find函数搭配可设计出通用截取算法。(excel中的提取相关文字就是基于这种算法??)