主函数中输入一个字符串 str,再输入一个字符 c,调用函数 delch(str,c)将字 符串 str 中出现的所有字符 c 删除。然后在主函数中输出删除字符 c 后的字符串。 即要求定义并调用函数 delch(str,c),它的功能是将字符串 str 中出现的所有 c 字符删除。
时间: 2023-12-05 19:06:26 浏览: 117
有一个字符串,内有若干个字符,今输入一个字符,要求程序将字符串中该字符删去。用外部函数实现。
好的,我理解了你的要求。以下是可以实现你的需求的 C++ 代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
void delch(string& str, char c) {
for (int i = 0; i < str.size(); ++i) {
if (str[i] == c) {
str.erase(i, 1);
--i;
}
}
}
int main() {
string str;
char c;
cout << "请输入一个字符串:" << endl;
getline(cin, str);
cout << "请输入一个字符:" << endl;
cin >> c;
delch(str, c);
cout << "删除字符 " << c << " 后的字符串为:" << endl;
cout << str << endl;
return 0;
}
```
在这段代码中,我们定义了一个 `delch` 函数,它的参数是一个字符串和一个字符,并且用引用的方式传递字符串,使得在函数内部可以修改原始字符串。函数的实现方式是遍历字符串中的每一个字符,如果它等于要删除的字符,就使用 `erase` 函数将它从字符串中删除。需要注意的是,每当删除一个字符后,下标 `i` 要减一,否则会漏掉一个字符。
在主函数中,我们先输入字符串和要删除的字符,然后调用 `delch` 函数将字符串中的字符删除。最后输出删除字符后的字符串。注意,我们使用了 `getline` 函数来读取一行输入,这样可以避免因为换行符的原因导致输入不完整。
阅读全文