使用c++删除字符串中指定字符
时间: 2023-12-08 21:03:23 浏览: 74
可以使用C++标准库中的字符串函数erase()和remove()来删除字符串中指定的字符。
以下是使用erase()函数的示例代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "hello world";
char ch = 'l';
for (int i = 0; i < str.size(); i++) {
if (str[i] == ch) {
str.erase(i, 1);
i--;
}
}
cout << str << endl;
return 0;
}
```
以上代码中,我们首先定义了一个字符串`str`和一个指定的字符`ch`。然后,我们使用for循环遍历字符串,如果当前字符等于指定的字符,则使用erase()函数删除该字符。由于调用erase()函数后,字符串的长度会改变,因此我们需要将循环变量i减1,以便处理下一个字符。最后,输出修改后的字符串。
另一种方法是使用remove()函数,该函数可以将指定字符移到字符串的末尾,并返回指向第一个移动的字符的迭代器。我们可以使用erase()函数删除移到末尾的字符,从而实现删除指定字符的目的。
以下是使用remove()函数的示例代码:
```cpp
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string str = "hello world";
char ch = 'l';
str.erase(remove(str.begin(), str.end(), ch), str.end());
cout << str << endl;
return 0;
}
```
以上代码中,我们首先定义了一个字符串`str`和一个指定的字符`ch`。然后,我们使用remove()函数将指定字符移到字符串的末尾,并返回指向第一个移动的字符的迭代器。最后,我们使用erase()函数删除移到末尾的字符,从而实现删除指定字符的目的。最后,输出修改后的字符串。
阅读全文