c++中的string常用函数用法总结
什么是string
string是C++ STL库中的一种字符串类型,提供了丰富的字符串操作函数,可进行字符串拼接、查找、替换、截取、大小写转换等操作。它是基于动态分配内存实现的,这意味着它能够自动管理内存,用户不必操心内存分配和释放的问题。
常用函数总结
1、构建string对象
string()
:默认构造函数,构造一个空的字符串。string(const char* s)
:构造函数,使用C语言中的字符串初始化string对象。string(size_t n, char c)
:构造函数,通过重复填充字符c来构造一个长度为n的string对象。string(const string& str)
:构造函数,通过拷贝构造函数来构造一个string对象。
示例:
string s1 = ""; // 空字符串
string s2 = "hello, world!"; // 通过C语言字符串构造一个string对象
string s3(10, 'a'); // 重复填充字符'a'来构造长度为10的字符串
string s4 = s2; // 拷贝构造函数构造一份s2的拷贝
2、字符串的长度和大小
size()
:返回字符串中字符的数量。length()
:与size()
函数功能相同,返回字符串中字符的数量。empty()
:返回true/false,指示字符串是否为空。
示例:
string s1 = "";
string s2 = "hello, world!";
cout << s1.size() << endl; // 0
cout << s2.length() << endl; // 13
cout << s1.empty() << endl; // 1,空字符串返回true
cout << s2.empty() << endl; // 0,非空字符串返回false
3、字符串的索引和下标访问
[i]
:返回字符串中第i个字符。at(i)
:返回字符串中第i个字符,做了边界检查,如果访问越界,会抛出out_of_range
异常。front()
:返回字符串的第一个字符。back()
:返回字符串的最后一个字符。
示例:
string s = "hello, world!";
cout << s[0] << endl; // 'h'
cout << s.at(1) << endl; // 'e'
cout << s.front() << endl; // 'h'
cout << s.back() << endl; // '!'
4、字符串的截取
substr(pos, len)
:返回从pos开始的长度为len个字符的子字符串。
示例:
string s = "hello, world!";
string s_substr = s.substr(7, 6); // 取子字符串"world!"
cout << s_substr << endl; // "world!"
5、字符串的比较
compare(s)
:比较当前字符串与字符串s的大小,返回-1、0或1。<, >, <=, >=, ==, !=
:运算符重载,用于比较两个字符串的大小关系,返回true/false。
示例:
string s1 = "abc";
string s2 = "abd";
cout << s1.compare(s2) << endl; // -1,s1小于s2
cout << (s1 < s2) << endl; // 1,s1小于s2,返回true
6、字符串的查找和替换
find(s, pos)
:在字符串从指定的位置开始查找子字符串s的出现位置,返回该位置的下标,如果找不到,返回-1。rfind(s, pos)
:从指定位置向后查找子字符串s的出现位置,返回该位置的下标,如果找不到,返回-1。replace(pos, len, s)
:将从pos位置开始的len个字符替换成字符串s。
示例:
string s = "hello, world!";
int pos = s.find("llo"); // pos = 2
int rpos = s.rfind("l"); // rpos = 9
s.replace(2, 3, "LLO"); // 替换"llo"为"LLO"
cout << s << endl; // "heLLO, world!"
总结
在C++中,使用string类可以方便地进行字符串操作。本文总结了string类的几个常用方法,包括构建、长度及大小、索引和下标访问、截取、比较、查找和替换等。使用上述方法可以使字符串的操作变得更加方便和快捷。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c++中的string常用函数用法总结 - Python技术站