除了尾部的*号之外,将字符串中其他*号全部删除c语言,假定输入的字符串中只包含字母和*号。请编写函数 fun(),它的功能是:除了尾部的,:号之外,将字符串_考题宝...
时间: 2023-12-05 15:04:43 浏览: 137
以下是实现该功能的 C 语言代码:
```c
#include <stdio.h>
#include <string.h>
void fun(char str[]) {
int len = strlen(str);
int tail = len - 1;
while (tail >= 0 && str[tail] == ':') {
tail--;
}
for (int i = 0; i < tail; i++) {
if (str[i] == '*') {
for (int j = i; j < tail; j++) {
str[j] = str[j+1];
}
str[tail] = '*';
i--;
tail--;
}
}
}
int main() {
char str[] = "考题宝***:";
fun(str);
printf("%s\n", str); // 输出: 考题宝***:
return 0;
}
```
首先,使用 `strlen()` 函数获取字符串的长度,然后从字符串尾部开始向前找到第一个不是冒号的字符的位置,记为 `tail`。接下来,从字符串开头开始,遍历字符串,如果遇到 `*`,就将其和后面的字符依次向前移动一位,直到 `tail` 的位置,然后将 `*` 放到 `tail` 的位置。最后输出处理后的字符串即可。
阅读全文