c语音规定输入的字符串中只包含字母和*号,编写函数 fun,其功能是:将字符串中的前导* 号和尾部*号全部删除,中间的*号不删除。
时间: 2024-10-10 15:07:01 浏览: 41
在C语言中,你可以创建一个名为`fun`的函数,用于满足这个需求。这个函数可以采用字符数组作为输入,并遍历整个数组,移除首尾的星号(*),同时保留中间的星号。以下是该函数的一个简单实现:
```c
#include <stdio.h>
#include <string.h>
void remove_trailing_stars(char *str) {
// 检查字符串是否为空
if (str == NULL || strlen(str) == 0) {
return;
}
int i = 0;
// 移动指针到第一个非'*'字符
while (str[i] == '*') {
i++;
}
int j = strlen(str) - 1; // 从尾部开始查找
// 移动尾部指针到最后一个非'*'字符
while (j >= 0 && str[j] == '*') {
j--;
}
// 如果首尾都有'*',则截断字符串
if (i != 0 && j != strlen(str) - 1) {
memmove(str, &str[i], j + 1); // 移动有效字符到起始位置
str[j + 1] = '\0'; // 添加终止符
}
}
int main() {
char str[] = "****example**";
printf("Original string: %s\n", str);
remove_trailing_stars(str);
printf("After removing leading and trailing stars: %s\n", str);
return 0;
}
```
阅读全文