将字符串中的前导*号全部移到字符串的尾部
时间: 2023-04-17 12:03:25 浏览: 139
可以使用字符串的切片操作和字符串的拼接操作来实现将字符串中的前导*号全部移到字符串的尾部。
具体步骤如下:
1. 定义一个字符串变量,存储需要处理的字符串。
2. 使用while循环,判断字符串的第一个字符是否为*号,如果是,则将该字符从字符串中删除,并将该字符添加到字符串的末尾。
3. 当字符串的第一个字符不是*号时,退出循环。
4. 输出处理后的字符串。
示例代码如下:
```python
s = "***hello***world*"
while s.startswith("*"):
s = s[1:] + s[0]
print(s)
```
输出结果为:hello***world***
相关问题
C语言:将字符串中的前导*号全部移到字符串的尾部。
可以使用指针来实现该功能,具体步骤如下:
1. 定义指向该字符串的指针,使用char类型指针。
2. 遍历字符串,找到第一个不是*号的字符的位置,记录下来。
3. 将指针移动到该位置。
4. 继续遍历字符串,将所有的*号移到字符串的尾部。
5. 在字符串的末尾添加一个空字符'\0',表示字符串的结束。
下面是实现该功能的C语言代码片段:
```c
void move_star(char* str) {
char* p = str; // 定义指向该字符串的指针
while (*p == '*') { // 找到第一个不是*号的字符的位置
p++;
}
char* q = p; // 将指针移动到该位置
while (*p != '\0') { // 遍历字符串
if (*p != '*') { // 如果当前字符不是*号
*q = *p; // 将当前字符移到非*号的字符的后面
q++;
}
p++;
}
while (*q != '\0') { // 将剩余的*号移到字符串的尾部
*q = '*';
q++;
}
*q = '\0'; // 在字符串的末尾添加一个空字符
}
```
可以使用以下代码进行测试:
```c
int main() {
char str[] = "***hello***world*****";
printf("原字符串:%s\n", str);
move_star(str);
printf("新字符串:%s\n", str);
return 0;
}
```
输出结果为:
```
原字符串:***hello***world*****
新字符串:hello***world*******
```
编写函数fun将字符串中的前导*号全部移到字符串的尾部。假定输入的字符串中只
函数fun的实现可以通过以下步骤:
1. 定义一个名为fun的函数,输入参数为一个字符串。
2. 创建一个变量starCount用于存储前导*号的个数,初始化为0。
3. 遍历字符串,统计前导*号的个数,并将*号替换为空格。
4. 将starCount个*号加到字符串的尾部。
5. 返回处理后的字符串。
以下是fun函数的伪代码实现:
```
function fun(str) {
let starCount = 0;
// 统计前导*号的个数,并将*号替换为空格
for (let i = 0; i < str.length; i++) {
if (str[i] === '*') {
starCount++;
} else {
break;
}
}
let newStr = str.replace(/^\*+/, ''); // 将前导*号替换为空格
// 将starCount个*号加到字符串的尾部
for (let i = 0; i < starCount; i++) {
newStr += '*';
}
return newStr;
}
```
通过以上步骤,fun函数可以将输入字符串中的前导*号全部移到字符串的尾部,并返回处理后的字符串。