编写函数fun(char+*a),其功能是:除了字符串前后连续的*号外,将字符串中间的*号全部删除。主函数中输入字符串,调用函数,并输出结果字符串。若输出:******A*BC*DEF*G****,删
时间: 2024-01-10 20:21:11 浏览: 35
```python
def fun(char):
# 判断字符串是否为空
if not char:
return ""
# 删除字符串前导的*号
while char[0] == "*":
char = char[1:]
# 删除字符串尾部的*号
while char[-1] == "*":
char = char[:-1]
# 删除字符串中间的*号
i = 0
while i < len(char) - 1:
if char[i] == "*" and char[i+1] == "*":
char = char[:i] + char[i+1:]
else:
i += 1
return char
# 主函数
string = "******A*BC*DEF*G****"
result = fun(string)
print(result) # 输出:A*BC*DEF*G
```
相关问题
用c语言不使用指针编写函数fun(char *a),其功能是:除了字符串前后连续的*号外,将字符串中间的*号全部删除。主函数中输入字符串,调用函数,并输出结果字符串。若输出:******A*BC*DEF*G****,删除后输出是:******ABCDEFG****。
```c
#include <stdio.h>
void fun(char *a) {
int i, j;
int len = strlen(a);
// 删除字符串中间的*号
for (i = 0, j = 0; i < len; i++) {
if (a[i] != '*' || (i > 0 && a[i-1] == '*' && a[i] == '*')) {
a[j++] = a[i];
}
}
a[j] = '\0';
}
int main() {
char str[100];
printf("请输入字符串:");
scanf("%s", str);
fun(str);
printf("删除后的字符串是:%s\n", str);
return 0;
}
```
1.假定输入的字符串中只包含字母和+*+号。请编写函数+fun+,它的功能是:将字符串中的前导+*+号全部移到字符串的+尾部。+ 例如,字符串中的内容为:+*******A*BC*DEF*G****
以下是函数fun的实现,它可以将字符串中的前导*号全部移到字符串的尾部:
```python
def fun(s):
i = 0
while s[i] == '*':
i += 1
s = s[i:] + '*' * i
return s
```
使用该函数可以得到字符串的移动后的结果:
```python
s = '*******A*BC*DEF*G****'
s = fun(s)
print(s) # 输出:A*BC*DEF*G***********
```