c++字符串函数
时间: 2025-04-21 07:40:50 浏览: 27
### C++ 中字符串操作函数列表及其用法
#### 基本字符串操作
C++ 提供了丰富的标准库函数用于处理 `std::string` 类型的数据。以下是常用的一些字符串操作函数:
- **获取长度**
获取字符串的长度可以使用成员函数 `length()` 或者 `size()`.
```cpp
std::string str = "example";
size_t length = str.length(); // or str.size()
```
- **访问字符**
可以通过下标运算符 `[ ]` 访问单个字符,也可以使用 `at()` 方法。
```cpp
char ch = str[0]; // First character
try {
char atCh = str.at(0); // Also first character but throws out_of_range exception on invalid index.
}
catch(const std::out_of_range& e){
// Handle error here...
}
```
- **子串提取**
使用 `substr(pos, count)` 函数可以从指定位置开始复制一定数量的字符形成新的字符串[^1].
```cpp
std::string subStr = str.substr(2, 3);
```
- **查找子串**
查找某个子串的位置可以通过调用 `find(subString[, pos])`, 如果找不到则返回 `npos`.
```cpp
size_t foundPos = str.find("ex");
if(foundPos != std::string::npos){
// Substring was found
}
```
- **替换子串**
替换部分字符串可以用 `replace(startIndex, numCharsToRemove, newSubstr)`.
```cpp
str.replace(0, 2, "EX"); // Replaces 'ex' with 'EX'
```
- **拼接字符串**
字符串可以直接相加或者利用 `append()` 成员方法连接两个字符串。
```cpp
std::string combined = str + "_suffix";
str.append("_another_suffix");
```
- **比较字符串**
支持直接使用关系运算符 (`==`, `<`, etc.) 进行字典序比较;还可以借助 `compare(otherStr)` 来判断两者的相对顺序。
```cpp
bool isEqual = (str == anotherStr);
int cmpResult = str.compare(anotherStr);
```
- **转换大小写**
虽然 C++ 标准库并没有提供内置的大/小写转换功能,但是很容易编写辅助函数来完成这项工作:
```cpp
void toUpperCase(std::string &s) {
transform(s.begin(), s.end(), s.begin(),
[](unsigned char c){ return std::toupper(c); });
}
void toLowerCase(std::string &s) {
transform(s.begin(), s.end(), s.begin(),
[](unsigned char c){ return std::tolower(c); });
}
```
这些只是冰山一角,在实际开发过程中还会有更多高级的应用场景等待探索。
阅读全文
相关推荐













