c++ 删除字符串中指定字符至末尾的字符
时间: 2023-09-02 16:07:38 浏览: 218
可以使用 C++ STL 中的 erase 函数来删除字符串中指定字符到末尾的字符。具体实现方法如下:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string str = "Hello, world!";
char ch = ','; // 指定字符为逗号
// 查找指定字符的位置
size_t pos = str.find(ch);
if (pos != string::npos) {
// 删除指定字符到末尾的字符
str.erase(pos);
}
cout << str << endl; // 输出结果为 "Hello"
return 0;
}
```
在上面的代码中,我们先使用 find 函数找到指定字符的位置,然后使用 erase 函数删除从该位置到末尾的字符。如果字符串中不存在指定字符,则不进行任何操作。
相关问题
使用c++删除字符串中指定字符
可以使用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()函数删除移到末尾的字符,从而实现删除指定字符的目的。最后,输出修改后的字符串。
C++去除字符串中.后的内容
在C++中,如果你想去除字符串(std::string)中的`.`后的内容,你可以使用`std::string`的`erase`函数结合`find`函数来定位`.`字符并删除之后的部分。假设你的字符串名为`str`,你可以这样做:
```cpp
#include <iostream>
#include <string>
std::string removeDotSuffix(const std::string &str) {
size_t dot_index = str.find_last_of('.');
if (dot_index != std::string::npos) { // 如果找到了`.`
str.erase(dot_index + 1); // 从找到`.`的位置开始删除到末尾
}
return str;
}
int main() {
std::string test_str = "example.string";
std::string result = removeDotSuffix(test_str);
std::cout << "Original string: " << test_str << "\n";
std::cout << "Result after removing . suffix: " << result << "\n";
return 0;
}
```
这个程序会返回一个新的字符串,其中`.`及其后续字符已被移除。
阅读全文