c++请编写带有指针作为参数的函数程序,实现以下功能:除了字符串前后的*号之外,将串中其他的*号全部删除。 例如,假设输入的字符串为****A*BC*DEF*G********,删除串中的*号后,字符串变为****ABDEFG********
时间: 2023-12-07 17:03:27 浏览: 140
以下是实现该功能的C++函数程序,其中使用指针作为参数:
```c++
#include <iostream>
using namespace std;
void deleteStar(char *str) {
char *p = str;
while (*p == '*') { // 跳过前导的*号
p++;
}
char *q = p;
while (*q != '\0') {
if (*q == '*') { // 如果当前字符是*号,则删除
char *r = q;
while (*r != '\0') {
*r = *(r + 1);
r++;
}
} else {
q++;
}
}
// 处理尾部的*号
q = p;
while (*q != '\0') {
q++;
}
q--;
while (*q == '*') {
*q = '\0';
q--;
}
}
int main() {
char str[] = "****A*BC*DEF*G********";
deleteStar(str);
cout << str << endl; // 输出:****ABDEFG********
return 0;
}
```
阅读全文