用C++编写函数void fun(char a),该函数实现的功能是:将字符串a中除前导和尾部连续的之外,其余的*全部删除。并在main函数中调用
时间: 2024-02-27 18:58:38 浏览: 64
以下是函数的实现代码:
```
void fun(char* a)
{
int start = 0, end = strlen(a) - 1;
// 找到第一个不是 * 的字符位置
while (a[start] == '*')
{
start++;
}
// 找到最后一个不是 * 的字符位置
while (a[end] == '*')
{
end--;
}
// 将中间的 * 全部删除
for (int i = start + 1; i < end; i++)
{
if (a[i] == '*')
{
// 将后面的字符往前移
for (int j = i; j <= end; j++)
{
a[j] = a[j + 1];
}
i--; // 因为删除了一个字符,需要重新判断当前位置
end--; // 字符串长度减少了 1
}
}
}
int main()
{
char str[] = "***123*456**"; // 测试用例
fun(str); // 调用函数
cout << str << endl; // 输出结果
return 0;
}
```
函数的参数是一个字符指针,即一个字符串的首地址。在 main 函数中,我们定义了一个测试用例,并调用 fun 函数对其进行处理。最后,输出处理后的字符串,即除前导和尾部连续的 * 之外,其余的 * 全部删除的结果。
阅读全文