std::string 实现删除字符串中指定字符
时间: 2024-05-07 10:20:35 浏览: 67
可以使用 `std::string::erase()` 函数删除字符串中指定字符。该函数的参数是指定要删除的字符的位置和数量。可以使用 `std::string::find()` 函数在字符串中查找指定字符的位置,然后使用 `std::string::erase()` 函数删除该字符。以下是一个示例代码:
```c++
#include <iostream>
#include <string>
int main() {
std::string str = "hello world";
char ch = 'l';
std::size_t pos = str.find(ch);
while (pos != std::string::npos) {
str.erase(pos, 1);
pos = str.find(ch);
}
std::cout << str << std::endl;
return 0;
}
```
在上面的示例代码中,首先定义了一个字符串 `str` 和一个要删除的字符 `ch`。然后使用 `std::string::find()` 函数查找 `ch` 在 `str` 中的位置,并使用 `std::string::erase()` 函数删除该字符。由于 `std::string::find()` 函数返回的是 `std::string::npos`,表示未找到指定字符,因此在一个循环中执行删除操作,直到找不到指定字符为止。最后输出删除指定字符后的字符串。
相关问题
std::string 实现删除字符串中首尾空白
下面是一个实现删除字符串中首尾空白的示例代码:
```
#include <iostream>
#include <string>
std::string trim(const std::string& str) {
size_t start = str.find_first_not_of(" \t\n\r");
size_t end = str.find_last_not_of(" \t\n\r");
if (start == std::string::npos || end == std::string::npos) {
return "";
}
return str.substr(start, end - start + 1);
}
int main() {
std::string str = " \t Hello, World! \n\r ";
std::cout << "[" << str << "]" << std::endl;
std::cout << "[" << trim(str) << "]" << std::endl;
return 0;
}
```
在上面的代码中,我们定义了一个 `trim` 函数,它接受一个 `std::string` 类型的参数 `str`,并返回一个新的字符串,该字符串是 `str` 去除首尾空白后的结果。
在 `trim` 函数中,我们首先使用 `find_first_not_of` 函数来查找 `str` 中第一个不是空白字符的位置,然后使用 `find_last_not_of` 函数来查找 `str` 中最后一个不是空白字符的位置。如果找不到这样的位置,说明字符串全部都是空白字符,直接返回空字符串。
最后,我们使用 `substr` 函数从 `str` 中截取去除首尾空白后的子串,并返回该子串作为结果。
std::list<std::string> 怎么插入字符串
要向std::list<std::string>中插入字符串,可以使用list的insert()函数。插入字符串时,可以选择在list的开头、结尾或指定位置插入。下面是一些示例代码:
- 在list的开头插入字符串:
std::list<std::string> mylist;
mylist.insert(mylist.begin(), "Hello");
- 在list的结尾插入字符串:
std::list<std::string> mylist;
mylist.insert(mylist.end(), "World");
- 在指定位置插入字符串:
std::list<std::string> mylist;
std::list<std::string>::iterator it = mylist.begin();
++it; //在第二个位置插入
mylist.insert(it, "Hello");
要注意的是,插入字符串时,需要使用迭代器指定插入位置。在上述示例中,使用begin()表示开头位置,end()表示结尾位置。如果要在指定位置插入,需要使用迭代器指定位置。
希望这可以帮助你插入字符串到std::list<std::string>中。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [实战c++中的string系列--std:vector<char> 和std:string相互转换(vector to stringstream)](https://blog.csdn.net/wangshubo1989/article/details/50274289)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文