假定输入的字符串中只包含字母和*号。请编写函数 fun(),它的功能是:除了尾部的*号之外,将字符串中其他*号全部删除。形参p已指向字符串中最后一个字母。在编写函数时,不得使用C语言的字符串函数。
时间: 2023-12-05 19:05:17 浏览: 179
除了尾部的*号之外,将字符串中其它*号全部删除。
5星 · 资源好评率100%
下面是一个可能的实现方式:
```c
void fun(char *p) {
// 首先找到最后一个非*字符的位置
int i = 0;
while (*(p - i) == '*') {
i++;
}
// 从后往前遍历字符串,将非*字符前移
int j = 1;
while (j <= i) {
if (*(p - j) != '*') {
*(p - i) = *(p - j);
i--;
}
j++;
}
// 将剩余位置填充*
while (i >= 0) {
*(p - i) = '*';
i--;
}
}
```
该函数首先找到最后一个非*字符的位置,然后从后往前遍历字符串,将非*字符前移,最后将剩余位置填充*。注意,在遍历字符串时,要从后往前遍历,并且使用指针操作,而不是数组下标操作。
阅读全文