• std::string是最常用的字符串类,下面介绍下该类的一些成员函数
  • 参考文档

1 构造函数

1.1 string()

std::string str;

1.2 string(const string& str)

  • 用另一个str对象初始化字符串
// 用str1对象去初始化str2
string str1("hello word");
string str2(str1);

1.3 string(const string& str, size_t pos, size_t len = npos)

  • 从str的pos位置起,拷贝npos长度的字符串初始化字符串
string str1("hello word");
string str2(str1, 2, 6); //从str1的第2个位置拷贝6个字符串初始化str2

1.4 string(const char* s)

string str("helle word");  //用"hello word"字符串初始化str

1.5 string(const char* s, size_t n)

  • 用字符串s的前n个字符初始化字符串
string str("hello word", 3); //用"hello word"前三个字符初始化str

1.6 string(size_t n, char c)

  • 用n个字符c初始化字符串
string str(10, 'a'); //用10个字符'a'初始化str

2 字符串拼接

2.1 string& operator+=(const string& str)

string str1("welcome");
string str2(" to beijing");
str1 += str2;

2.2 string& operator+=(const char* str)

string str("welcome");
str += " to beijing";

2.3 string& operator+=(char c)

string str("welcom");
str += 'e';

2.4 string& append(const string& str)

//将str2拼接到str1的末尾
str1.append(str2);

2.5 string& append(const char* s)

//将"abcd"拼接到str的末尾
str.append("abcd");

2.6 string& append(const char* s, size_t n)

  • 将s的前n个字符拼接到字符串末尾
//将"abcd"的前两个字符拼接到str的末尾
str.append("abcd", 2);

2.7 string& append(size_t n, char c)

  • 将n个c拼接到字符串末尾
//将5个'a'拼接到str末尾
str.append(5, 'a'); 

2.8 string& append(const string& str, size_t subpos, size_t sublen)

  • 将str从subpos开始的位置选取sublen长度个字符拼接到字符串末尾
//从str1的第二个位置选取三个长度字符拼接到str2末尾
str2.append(str1, 2, 3);

2.9 string operator+(const string& str1, const string& str2)

str1 + str2

2.10 string operator+(const string& str, const char* s)

str + "abcd"

2.11 string operator+(const char* s, const string& str)

"abcd" + str

2.12 string operator+(const string& str, char c)

str + 'a'

2.13 string operator+(char c, const string& str)

'a' + str

3 字符串查找

3.1 size_t find(const string& str, size_t pos = 0) const

  • 从pos位置处查找str在字符串中第一次出现的位置
//从第五个位置查找str1在str2中第一次出现的位置
str2.find(str1, 5);

3.2 size_t find(const char* s, size_t pos = 0) const

  • 从pos处查找s在字符串中第一次出现的位置
//从str中查找"come"第一次出现的位置
str.find("come");

3.3 size_t find(char c, size_t pos = 0)

  • 从pos处查找c第一次在字符串中出现的位置
//查找str中字符'a'第一次出现的位置
str.find('a')

3.4 size_t find(const char* s, size_t pos, size_t n)

  • 从pos处查找s的前n个字符在字符串中出现的位置
//从str的第5个位置开始查找"abc"前2个字符第1次出现的位置
str.find("abc", 5, 2);
  • 未找到,返回std::string::npos

4 字符串替换

4.1 string& replace(int pos, int n, const string& str)

  • 替换从pos处开始的n个字符为str

4.2 string& replace(int pos, int n, const char* s)

  • 替换pos处开始的n个字符为s

5 字符串比较

5.1 int compare(const string& s) const

5.2 int compare(const char* s) const

  • 相等时返回0,大于返回1,小于返回-1

6、子串

string substr(int pos = 0, int n = npos) const

  • 返回pos处开始,npos长度的字串

7 字符串插入

7.1 string& insert(int pos, const char* s)

  • 在pos处插入s

7.2 string& insert(int pos, const string& str)

  • 在pos处插入str

7.3 string& insert(int pos, int n, char c)

  • 在pos处插入n个c

8 字符串赋值

8.1 string& operator= (const string& str)

8.2 string& operator= (const char* s)

8.3 string& operator= (char c)

8.4 string& assign (const string& str)

8.5 string& assign (const string& str, size_t subpos, size_t sublen);

8.6 string& assign (const char* s)

8.7 string& assign (const char* s, size_t n)

8.8 string& assign (size_t n, char c)

9 字符串清除

9.1 string& erase (size_t pos = 0, size_t len = npos)

  • 清除pos处开始len个字符长度的字符串

9.2 std::string::clear()

  • 清空字符串
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐