输入一个字符,如果此字符在已知的字符串中出现,则删除此字符(只删除第一个) ,如删除成功就返回被删字符,否则返回'\0'。请改正程序中的错误,使它能得出正确的结果。
时间: 2024-03-03 19:50:35 浏览: 78
有一个字符串,内有若干个字符,今输入一个字符,要求程序将字符串中该字符删去。用外部函数实现。
这里提供一个C++的实现:
```cpp
char deleteChar(string& str, char c) {
for (int i = 0; i < str.size(); i++) {
if (str[i] == c) {
str.erase(i, 1);
return c;
}
}
return '\0';
}
```
这个函数接受两个参数,一个是待操作的字符串,另一个是要删除的字符。它会遍历字符串,找到第一个等于要删除的字符的位置,然后用 `erase` 函数删除该字符,并返回被删除的字符。如果字符串中没有要删除的字符,则返回空字符 `'\0'`。
需要注意的是,在删除字符后,字符串的长度也会相应地减小,因此不能直接使用 `str[i]` 这样的下标来遍历字符串,需要使用迭代器或者用 `size()` 函数来获得字符串长度。
阅读全文