1.介绍
string 是 C++ 中常用的一个类,使用 string 类需要包含头文件。
2.示例
#include <iostream>
#include <string> //需要增加此头文件
using namespace std;
int main(){
string s1;
string s2 = "cpp";
string s3 = s2;
string s4 (5, 's');
string s5 ("aaaaa");
return 0;
}
变量 s1 只是定义但没有初始化,编译器会将默认值赋给 s1,默认值是"“,也即空字符串。
变量 s2 在定义的同时被初始化为"cpp”。与C风格的字符串不同,string 的结尾没有结束标志’\0’。
变量 s3 在定义的时候直接用 s2 进行初始化,因此 s3 的内容也是"c plus plus"。
变量 s4 被初始化为由 5 个’s’字符组成的字符串,也就是"sssss"。
变量 s5赋值方式等同s2。
3.计算字符串长度
需要知道字符串长度时,可以调用 string 类提供的 length() 函数。由于 string 的末尾没有’\0’字符,所以 length() 返回的是字符串的真实长度,而不是长度 +1。
int len = s2.length();
4.字符串拼接
string s = s1 + s2;
5.字符串其他函数
插入字符串insert() 函数
string& insert (size_t pos, const string& str);
pos 表示要插入的位置;str 表示要插入的字符串.
string s1, s2,aaaaaaaaa s3;
s1 = s2 = "aaaaaaaaaaaa";
s3 = "bbbbbb";
s1.insert(5, s3);
删除字符串erase() 函数
string& erase (size_t pos = 0, size_t len = npos);
pos 表示要删除的子字符串的起始下标,len 表示要删除子字符串的长度。如果不指明 len 的话,那么直接删除从 pos 到字符串结束处的所有字符.
string s1, s2;
s1 = s2 = "asdfghjkl";
s1.erase(4);
s2.erase(5, 3);
提取子字符串substr() 函数
string substr (size_t pos = 0, size_t len = npos) const;
pos 为要提取的子字符串的起始下标,len 为要提取的子字符串的长度。
string s1 = "aaa bbb ccc";
string s2;
s2 = s1.substr(5, 3);
查找字符串find() 函数
size_t find (const string& str, size_t pos = 0) const;
size_t find (const char* s, size_t pos = 0) const;
第一个参数为待查找的子字符串,它可以是 string 字符串,也可以是C风格的字符串。第二个参数为开始查找的位置(下标);如果不指明,则从第0个字符开始查找。
string s1 = "aaa bbb ccc";
string s2 = "bbb";
int index = s1.find(s2,3);
END.