C++的wstring
是宽字符字符串类型,它用于处理可能包含非ASCII字符的文本。wstring
提供了许多操作方法,以下是一些常用的:
- 构造函数:
wstring()
:默认构造函数,创建一个空的wstring
。wstring(const char* s)
:从C风格字符串构造wstring
。wstring(const std::string& s)
:从std::string
构造wstring
。wstring(size_t n, wchar_t c)
:创建一个指定长度并用指定字符填充的wstring
。wstring(const wchar_t* s)
:从宽字符C风格字符串构造wstring
。wstring(const std::wstring& s)
:从另一个wstring
复制构造。
- 访问字符:
operator[]
:通过索引访问wstring
中的单个字符。at(size_t index)
:通过索引访问wstring
中的单个字符,并提供范围检查(抛出std::out_of_range
)。
- 修改字符:
operator[]=(wchar_t c)
:通过索引设置wstring
中的单个字符。at(size_t index) = wchar_t
:通过索引设置wstring
中的单个字符,并提供范围检查(抛出std::out_of_range
)。
- 字符串长度和容量:
size()
:返回wstring
中字符的数量。length()
:与size()
功能相同。capacity()
:返回wstring
在重新分配之前可以容纳的字符数量。reserve(size_t new_capacity)
:预留指定数量的存储空间。
- 添加和删除字符:
append(const wchar_t* s)
:将C风格宽字符字符串追加到wstring
末尾。append(const std::wstring& s)
:将另一个wstring
追加到wstring
末尾。append(size_t n, wchar_t c)
:将指定数量的指定字符追加到wstring
末尾。insert(size_t index, const wchar_t* s)
:在指定位置插入C风格宽字符字符串。insert(size_t index, const std::wstring& s)
:在指定位置插入另一个wstring
。insert(size_t index, size_t n, wchar_t c)
:在指定位置插入指定数量的指定字符。erase(size_t index)
:删除指定位置的字符。erase(size_t index, size_t count)
:删除指定范围内的字符。
- 比较:
==
:比较两个wstring
是否相等。!=
:比较两个wstring
是否不相等。<
:比较两个wstring
的字典顺序。>
:比较两个wstring
的字典顺序。<=
:比较两个wstring
是否小于或等于另一个。>=
:比较两个wstring
是否大于或等于另一个。
- 查找:
find(const wchar_t* s)
:查找C风格宽字符字符串在wstring
中的位置。find(const std::wstring& s)
:查找另一个wstring
在wstring
中的位置。rfind(const wchar_t* s)
:从后向前查找C风格宽字符字符串在wstring
中的位置。rfind(const std::wstring& s)
:从后向前查找另一个wstring
在wstring
中的位置。find_first_of(const wchar_t* s)
:查找wstring
中任意一个字符在C风格宽字符字符串中的位置。find_first_of(const std::wstring& s)
:查找wstring
中任意一个字符在另一个wstring
中的位置。find_last_of(const wchar_t* s)
:查找wstring
中任意一个字符在C风格宽字符字符串中的最后一个位置。find_last_of(const std::wstring& s)
:查找wstring
中任意一个字符在另一个wstring
中的最后一个位置。
- 替换:
replace(size_t index, size_t count, const wchar_t* s)
:替换指定范围内的字符为新的C风格宽字符字符串。replace(size_t index, size_t count, const std::wstring& s)
:替换指定范围内的字符为另一个wstring
。replace(size_t index, size_t count, size_t n, wchar_t c)
:替换指定范围内的字符为指定数量的指定字符。
- 交换:
swap(wstring& other)
:交换两个wstring
的内容。
- 其他操作:
c_str()
:返回一个C风格字符串。data()
:返回指向内部数据数组的指针。front()
:返回第一个字符。back()
:返回最后一个字符。rbegin()
:返回反向迭代器的起始位置。rend()
:返回反向迭代器的结束位置。assign(const wchar_t* s)
:从C风格字符串赋值给wstring
。assign(const std::wstring& s)
:从另一个wstring
赋值给wstring
。operator=
:赋值操作符。+
:字符串连接操作符。+=
:在字符串末尾添加字符或wstring
。==
:比较两个wstring
是否相等(重载)。!=
:比较两个wstring
是否不相等(重载)。<
:比较两个wstring
的字典顺序(重载)。>
:比较两个wstring
的字典顺序(重载)。<=
:比较两个wstring
是否小于或等于另一个(重载)。>=
:比较两个wstring
是否大于或等于另一个(重载)。
这些操作方法使得wstring
在处理宽字符文本时非常方便。请注意,在使用这些方法时,应确保索引和长度计算正确,以避免潜在的越界错误。