自定义函数实现两个字符串的连接。要求函数返回值是连接后的字符串。 主函数接收从键盘输入的两行不超过80个字符的字符串(包括空格),调用自定义函数实现字符串的连接。 注意自定义函数中的第1个字符数组长度必须足够大。 #include <iostream> using namespace std; void deleteChar(char *s, char c); int main() { char *str, ch; str=new char[81]; cin.getline(str,80); cin>>ch; deleteChar(str, ch); cout<<str; delete []str; return 0; } /* 请在这里填写答案 */
时间: 2024-03-26 22:35:33 浏览: 15
好的,根据您提供的代码,我为您编写完整的程序如下:
```c++
#include <iostream>
using namespace std;
void deleteChar(char *s, char c);
int main() {
char *str, ch;
str = new char[81];
cin.getline(str, 80);
cin >> ch;
deleteChar(str, ch);
cout << str;
delete[] str;
return 0;
}
void deleteChar(char *s, char c) {
char *p = s;
while (*p) {
if (*p == c) {
char *q = p;
while (*q) {
*q = *(q + 1);
q++;
}
} else {
p++;
}
}
}
```
在该程序中,我们首先定义了一个 `deleteChar()` 函数,用于删除字符串中的指定字符。然后我们在 `main()` 函数中使用 `new` 关键字动态分配了一个长度为 81 的字符数组 `str`,并通过 `cin.getline()` 函数从标准输入中读取一行字符串并存储在 `str` 中。接着,我们通过 `cin >> ch` 读取一个字符 `ch`,并调用 `deleteChar()` 函数删除 `str` 中的所有字符 `ch`。最后,我们输出删除字符后的字符串,并通过 `delete[]` 关键字释放 `str` 的内存。
需要注意的是,在 `deleteChar()` 函数中,我们使用了指针 `p` 和 `q` 来遍历字符串,并删除指定字符。其中,`p` 指向当前遍历到的字符,如果该字符等于指定字符,我们就将 `q` 指向当前字符,并依次将其后面的字符向前移动一位,以达到删除指定字符的目的。