假定输入的字符串中只包含字母和*号。请编写函数fun, 它的功能是:将字符串中的前导*号全部删除, 中间和尾部的*号不删除。例如,若字符串中的内容为*******A*BC*DEF*G**,删除后,字符
时间: 2024-06-17 14:06:42 浏览: 143
以下是实现该功能的函数fun的代码实现:
```python
def fun(s):
i = 0
while s[i] == '*':
i += 1
return s[i:]
```
这个函数会遍历输入字符串s,将前导的*号全部删除,然后返回剩余部分的字符串。
相关问题
c语言写假定输入的字符串中只包含字母和*号。请编写函数 fun,它的功能是将字符串中的前导*号全部移到字符串的尾部。
以下是实现该功能的C语言代码:
```c
void fun(char *str) {
int len = strlen(str);
int i, j;
// 计算前导*号的数量
int count = 0;
for (i = 0; i < len; i++) {
if (str[i] == '*') {
count++;
} else {
break;
}
}
// 移动前导*号到字符串尾部
for (i = 0, j = count; j < len; i++, j++) {
str[i] = str[j];
}
for (i = len - count; i < len; i++) {
str[i] = '*';
}
}
```
该函数的思路是先计算前导*号的数量,然后将非*号字符向前移动,最后将前导*号移到字符串尾部。注意要使用字符串的长度来遍历字符串。
2) 假定输入的字符串中只包含字母和*号。请编写函数 fun ,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不要删除,形参 n 给出字符串的长度,形参 h 给出了字符串中前导*号的个
针对这个问题,你可以编写一个Python函数`fun`来实现这个需求。下面是一个简单的例子:
```python
def fun(s, n, h):
# 检查输入是否合法,如果n小于等于0或者h大于n,则无需处理,直接返回原字符串
if n <= 0 or h > n:
return s
# 删除前导的*
start = min(h, n)
s = s[start:]
# 删除尾部多余的*
while s and s[0] == '*':
s = s[1:]
# 如果字符串开始就只有一个*,则保留它
if not s:
return '*'
# 返回处理后的字符串,中间的*号保持不变
return ''.join('*' if c == '*' else c for c in s)
# 示例
input_str = "****hello****"
length = len(input_str)
header_star_count = 4
result = fun(input_str, length, header_star_count)
print(result) # 输出:*hello**
```
这个函数首先检查输入的有效性,然后逐步去掉前导和尾部的*号。注意,在实际应用中,你需要处理字符串中有多个连续*号的情况。
阅读全文