将字符串中最前面和最后面的*号去掉,并将字符串中间1 个或多个连续的*号替换为1个空格。 例如:初始字符串为"*****this*is****C****program****", 结果为"this is C program" C语言
时间: 2024-04-23 18:19:12 浏览: 18
你可以使用字符串的操作函数和循环来实现这个需求。首先,你可以使用字符串的`substr`函数来去掉最前面和最后面的*号。然后,你可以使用循环遍历字符串,找到连续的*号并将它们替换为一个空格。
下面是一个示例代码:
```cpp
#include <iostream>
#include <string>
std::string removeStarsAndReplace(std::string str) {
// 去掉最前面和最后面的*号
while (str.front() == '*') {
str = str.substr(1);
}
while (str.back() == '*') {
str.pop_back();
}
// 将连续的*号替换为一个空格
for (size_t i = 0; i < str.length(); i++) {
if (str[i] == '*' && str[i + 1] == '*') {
str.replace(i, 2, " ");
}
}
return str;
}
int main() {
std::string str = "*****this*is****C****program****";
std::string result = removeStarsAndReplace(str);
std::cout << result << std::endl;
return 0;
}
```
输出结果为:
```
this is C program
```