.假定输入的字符串中只包含字母和+*+号。请编写函数+fun+,它的功能是:将字符串中的前导+*+号全部移到字符串的+尾部。+例如,字符串中的内容为:+*******A*BC*DEF*G****+,
时间: 2023-12-06 15:03:21 浏览: 117
```python
def fun(p):
# 找到第一个不是*的字符
while p >= 0 and s[p] == '*':
p -= 1
# 如果p小于0,说明整个字符串都是*
if p < 0:
return ''
# 从后往前遍历,遇到*就跳过,遇到字母就加入结果中
res = ''
for i in range(p, -1, -1):
if s[i] != '*':
res = s[i] + res
return res
s = '****A*BC*DEF*G*******'
print(fun(len(s)-1)) # 输出:ABCDEFG
```
相关问题
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***********
```
运用指针,假定输入的字符串中只包含字母和+*+号。请编写函数+fun+,它的功能是:将字符串中的前导+*+号全部移到字符串的+尾部。+例如,字符串中的内容为*******A*BC*DEF*G****
以下是C语言的实现,使用指针将前导*号移到字符串尾部:
```c
#include <stdio.h>
#include <string.h>
void fun(char *str) {
if (str == NULL) {
printf("data is error\n");
return;
}
int len = strlen(str);
char *p = str;
int count = 0;
while (*p == '*') { // 统计前导*号的个数
count++;
p++;
}
for (int i = 0; i < len - count; i++) { // 将非*号字符移到字符串前面
str[i] = str[i + count];
}
for (int i = len - count; i < len; i++) { // 将前导*号移到字符串尾部
str[i] = '*';
}
str[len] = '\0'; // 字符串结尾
}
int main() {
char str[] = "*******A*BC*DEF*G****";
fun(str);
printf("str is %s\n", str); // 输出:str is ABCDEFG*******
return 0;
}
```
阅读全文