std::string 字符串删除
时间: 2023-11-05 12:04:49 浏览: 146
在C++中,可以使用std::erase和std::remove函数来删除std::string字符串中的指定字符。首先,使用std::remove函数将要删除的字符移到字符串的末尾,然后使用std::erase函数擦除末尾的字符。以下是一个示例:
std::string str = "string:-name:-sponge-";
str.erase(std::remove(str.begin(), str.end(), '-'), str.end());
在上面的示例中,字符串str中的字符'-'被删除,最终结果为"string:name:sponge"。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
相关问题
std::string 比较字符串
std::string是C++标准库中的一个类,用于表示和操作字符串。在std::string类中,可以使用比较运算符(如==、!=、<、>、<=、>=)来比较字符串的大小。
比较字符串时,会按照字典序进行比较。具体比较规则如下:
- 如果两个字符串的长度不同,那么较短的字符串会被认为是较小的。
- 如果两个字符串的长度相同,那么会逐个比较对应位置上的字符,直到找到不同的字符为止。根据不同字符的ASCII码值来确定大小关系。
下面是一个示例代码,演示了如何使用std::string进行字符串比较:
```cpp
#include <iostream>
#include <string>
int main() {
std::string str1 = "hello";
std::string str2 = "world";
if (str1 == str2) {
std::cout << "str1和str2相等" << std::endl;
} else if (str1 < str2) {
std::cout << "str1小于str2" << std::endl;
} else {
std::cout << "str1大于str2" << std::endl;
}
return 0;
}
```
输出结果为:"str1小于str2",因为按照字典序,"hello"小于"world"。
std::string 分割字符串
可以使用 stringstream 和 getline 函数来分割字符串,具体实现如下:
```c++
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
std::vector<std::string> split(const std::string& s, char delimiter) {
std::vector<std::string> tokens;
std::stringstream ss(s);
std::string token;
while (std::getline(ss, token, delimiter)) {
tokens.push_back(token);
}
return tokens;
}
int main() {
std::string s = "hello world";
std::vector<std::string> tokens = split(s, ' ');
for (const auto& token : tokens) {
std::cout << token << std::endl;
}
return 0;
}
```
输出结果为:
```
hello
world
```
阅读全文