c++ string字符串删除空字符
时间: 2023-07-19 11:06:38 浏览: 47
可以使用C++中的erase函数删除字符串中的空格字符。可以使用以下代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
string s = " Hello World! ";
cout << "Before: " << s << endl;
// 删除开头的空格
while (s[0] == ' ') {
s.erase(0, 1); // 删除第一个字符
}
// 删除结尾的空格
while (s[s.size() - 1] == ' ') {
s.erase(s.size() - 1, 1); // 删除最后一个字符
}
// 删除中间的空格
for (int i = 0; i < s.size(); i++) {
if (s[i] == ' ' && s[i + 1] == ' ') { // 如果连续两个字符都是空格
s.erase(i, 1); // 删除一个空格
i--; // 重新检查当前位置
}
}
cout << "After: " << s << endl;
return 0;
}
```
输出结果:
```
Before: Hello World!
After: Hello World!
```
相关问题
c++ string字符串删除空格
可以使用C++标准库的`erase`和`remove_if`函数来删除字符串中的空格。
具体实现代码如下:
```c++
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string str = " hello world! ";
str.erase(remove_if(str.begin(), str.end(), ::isspace), str.end());
cout << str << endl;
return 0;
}
```
上述代码中,`remove_if`函数接受一个用于判断是否为需要删除元素的谓词函数,这里使用了`::isspace`函数,它能够判断一个字符是否为空格字符。`erase`函数则用于删除满足条件的元素。
c++ string字符串匹配
在C++中,可以使用string类来进行字符串匹配。C++的string类提了一系列成员函数和操作符来进行字符串的比较和匹。
一种常见的字符串匹配方法是使用string类的find函数。find函数可以在一个字符串中查找另一个字符串,并返回第一次出现的位置。例如,可以使用以下代码来查找字符串s中是否包含子串sub:
```cpp
#include <iostream>
#include <string>
int main() {
std::string s = "Hello, world!";
std::string sub = "world";
size_t found = s.find(sub);
if (found != std::string::npos) {
std::cout << "子串在位置 " << found << " 处找到了" << std::endl;
} else {
std::cout << "子串未找到" << std::endl;
}
return 0;
}
```
另外,还可以使用string类的compare函数来进行字符串的比较。compare函数可以比较两个字符串的大小关系,并返回一个整数值表示比较结果。如果两个字符串相等,则返回0;如果第一个字符串小于第二个字符串,则返回一个负数;如果第一个字符串大于第二个字符串,则返回一个正数。例如,可以使用以下代码来比较两个字符串s1和s2:
```cpp
#include <iostream>
#include <string>
int main() {
std::string s1 = "abc";
std::string s2 = "def";
int result = s1.compare(s2);
if (result == 0) {
std::cout << "两个字符串相等" << std::endl;
} else if (result < 0) {
std::cout << "s1 小于 s2" << std::endl;
} else {
std::cout << "s1 大于 s2" << std::endl;
}
return 0;
}
```
除了以上介绍的方法,C++还提供了其他一些字符串匹配的函数和算法,如正则表达式匹配、KMP算法等。具体使用哪种方法取决于你的需求和场景。