C++中string类提供构造、赋值、访问、修改、查找、比较等丰富操作,支持自动内存管理,相比C风格字符串更安全高效,通过reserve预分配内存可优化拼接性能,使用at()可避免越界访问,需注意空指针和迭代器失效等问题。

C++中
string
string
C++的
string
构造函数:
string()
string(const string& str)
string
string(const char* s)
string(size_t n, char c)
赋值:
立即学习“C++免费学习笔记(深入)”;
string& operator=(const string& str)
string
string& operator=(const char* s)
string
string& operator=(char c)
string
string& assign(const string& str)
=
string& assign(const char* s)
=
string& assign(size_t n, char c)
访问:
char& operator[](size_t pos)
char& at(size_t pos)
std::out_of_range
char& front()
char& back()
修改:
string& append(const string& str)
string& append(const char* s)
string& append(size_t n, char c)
string& push_back(char c)
string& insert(size_t pos, const string& str)
string& insert(size_t pos, const char* s)
string& insert(size_t pos, size_t n, char c)
string& erase(size_t pos = 0, size_t n = npos)
string& replace(size_t pos, size_t n, const string& str)
string& replace(size_t pos, size_t n, const char* s)
void clear()
string& resize(size_t n)
string& resize(size_t n, char c)
查找:
size_t find(const string& str, size_t pos = 0) const
string::npos
size_t find(const char* s, size_t pos = 0) const
string::npos
size_t find(char c, size_t pos = 0) const
string::npos
size_t rfind(const string& str, size_t pos = npos) const
string::npos
size_t rfind(const char* s, size_t pos = npos) const
string::npos
size_t rfind(char c, size_t pos = npos) const
string::npos
size_t find_first_of(const string& str, size_t pos = 0) const
string::npos
size_t find_first_of(const char* s, size_t pos = 0) const
string::npos
size_t find_first_not_of(const string& str, size_t pos = 0) const
string::npos
size_t find_first_not_of(const char* s, size_t pos = 0) const
string::npos
size_t find_last_of(const string& str, size_t pos = npos) const
string::npos
size_t find_last_of(const char* s, size_t pos = npos) const
string::npos
size_t find_last_not_of(const string& str, size_t pos = npos) const
string::npos
size_t find_last_not_of(const char* s, size_t pos = npos) const
string::npos
比较:
int compare(const string& str) const
int compare(const char* s) const
bool operator==(const string& str) const
bool operator!=(const string& str) const
bool operator<(const string& str) const
bool operator>(const string& str) const
bool operator<=(const string& str) const
bool operator>=(const string& str) const
子串:
string substr(size_t pos = 0, size_t n = npos) const
其他:
size_t size() const
size_t length() const
size()
size_t capacity() const
bool empty() const
const char* c_str() const
const char* data() const
c_str()
使用
string
+=
append
reserve
stringstream
string
#include <iostream>
#include <string>
#include <sstream>
int main() {
std::string str1 = "Hello";
std::string str2 = "World";
std::string result;
// 预留空间,避免多次分配内存
result.reserve(str1.length() + str2.length() + 1);
result += str1;
result += " ";
result += str2;
std::cout << result << std::endl;
// 使用 stringstream
std::stringstream ss;
ss << str1 << " " << str2;
std::string result2 = ss.str();
std::cout << result2 << std::endl;
return 0;
}string
char*
区别:
string
char*
string
string
联系:
string
c_str()
string
string
char*
在使用
string
operator[]
at()
string
string
string
char*
char*
const string
string
#include <iostream>
#include <string>
#include <stdexcept>
int main() {
std::string str = "Hello";
// 避免越界访问
try {
char c = str.at(10); // 抛出 std::out_of_range 异常
std::cout << c << std::endl;
} catch (const std::out_of_range& e) {
std::cerr << "Out of range error: " << e.what() << std::endl;
}
// 避免空指针
const char* cstr = nullptr;
// std::string str2(cstr); // 避免这样使用,会导致崩溃
return 0;
}以上就是C++字符串处理 string类常用操作方法的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号