输入一个字符串 str,再输入要删除字符 c(非空格字符),大小写不区分,将字符串 str 中出现的所有字符 c 删除。提示:去掉两端的空格。 输入格式: 在第一行中输入一行字符 在第二行输入待删除的字符 输出格式: 在一行中输出删除后的字符串,C++语言具体实现
时间: 2023-12-03 19:44:10 浏览: 635
```cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
getline(cin, str); // 读入一行字符串,包括空格
char c;
cin >> c; // 读入要删除的字符
for (int i = 0; i < str.size(); i++) {
if (str[i] == c || str[i] == c - 'a' + 'A' || str[i] == c - 'A' + 'a') {
// 如果当前字符是要删除的字符,或者是大小写变换的字符,都可以删除
str.erase(i, 1); // 删除当前位置的字符
i--; // 调整 i 的值,以便遍历到下一个字符
}
}
// 去掉两端的空格
int left = 0, right = str.size() - 1;
while (left < str.size() && str[left] == ' ') left++;
while (right >= 0 && str[right] == ' ') right--;
// 输出删除后的字符串
for (int i = left; i <= right; i++) cout << str[i];
return 0;
}
```
注:上述代码使用了 `string` 类型,它是 C++ 中的一个标准库类型,可以方便地进行字符串操作。`getline(cin, str)` 可以读入一行字符串(包括空格),`str.size()` 可以获取字符串的长度,`str[i]` 可以访问字符串中第 `i` 个字符,`str.erase(i, 1)` 可以删除字符串中第 `i` 个字符,`cout << str[i]` 可以输出字符串中第 `i` 个字符。
阅读全文