编写程序,删除字符串中的某个字符。(字符串、要删除的字符都由用户从键盘输入,有则删除——所谓删除就是后序的元素往前覆盖,无则提示“该字符不存在。”) 例如: 输入原始字符串:abcebacebaghbf 数组 输入要删除的字符: b 删除以后的字符串:aceaceaghf c++
时间: 2024-02-12 07:05:16 浏览: 44
C语言程序设计-从字符串中删除指定的字符;同一字母的大、小写 按不同字符处理;
5星 · 资源好评率100%
好的,我来为您编写这个程序。以下是 C++ 代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
char c;
bool exist = false; // 标记要删除的字符是否存在
// 输入原始字符串
cout << "请输入原始字符串: ";
getline(cin, str);
// 输入要删除的字符
cout << "请输入要删除的字符: ";
cin >> c;
// 遍历字符串,删除指定字符
for (int i = 0; i < str.length(); i++) {
if (str[i] == c) {
exist = true; // 标记要删除的字符存在
for (int j = i; j < str.length() - 1; j++) {
str[j] = str[j+1]; // 后续元素往前覆盖
}
str[str.length()-1] = '\0'; // 将最后一个元素置为 '\0'
i--; // 删除后,下标需要减一
}
}
// 输出结果
if (exist) {
cout << "删除以后的字符串: " << str << endl;
} else {
cout << "该字符不存在。" << endl;
}
return 0;
}
```
以上程序中,我们使用了 `string` 类型来存储用户输入的字符串,使用 `char` 类型来存储要删除的字符。在遍历字符串时,如果遇到要删除的字符,就将后续元素往前覆盖,最后将最后一个元素置为 '\0',以表示字符串的结束。
希望对您有所帮助!
阅读全文