c++ 删除一个字符串中的所有数字字符
时间: 2023-09-23 22:04:23 浏览: 167
可以使用C++标准库中的 `std::remove_if` 算法结合 lambda 表达式来删除字符串中的所有数字字符。以下是一个示例代码:
```c++
#include <iostream>
#include <string>
#include <algorithm>
int main() {
std::string str = "hello 123 world 456";
std::cout << "Original string: " << str << std::endl;
// 使用 remove_if 算法结合 lambda 表达式删除数字字符
str.erase(std::remove_if(str.begin(), str.end(), [](char c) {
return std::isdigit(c);
}), str.end());
std::cout << "New string: " << str << std::endl;
return 0;
}
```
在上述代码中,我们首先定义了一个包含数字字符的字符串。然后,我们使用 `std::remove_if` 算法结合 lambda 表达式来删除其中的数字字符。最后,我们输出删除数字字符后的字符串到控制台上。
在 lambda 表达式中,我们使用 `std::isdigit` 函数来判断当前字符是否为数字字符。如果是数字字符,则返回 `true`,否则返回 `false`。`std::remove_if` 算法会将符合条件的字符移动到字符串的末尾,并返回一个新的迭代器,该迭代器指向末尾的第一个符合条件的字符。最后,我们使用该迭代器来删除字符串中的数字字符。
阅读全文