Python 对字符串由数字和 “*”星型字符两种字符无序构成的stra,,现在想把所有的星型字符挪到数组的左边,数字字符全部放到右边,数字字符之间的相互顺序不变。补充程序中所缺代码,完成上述功能。 【输入形式】 输入一个有数字和星号构成的字符串 【输出形式】 换位后的字符串 【样例输入】 12*23**567 【样例输出】 ***1223567 
时间: 2023-05-21 15:02:07 浏览: 141
以下是代码实现:
```python
s = input() # 输入字符串
lst = list(s) # 将字符串转换为列表
left, right = 0, len(lst) - 1 # 定义左右指针
while left < right:
if lst[left] == '*': # 如果左指针指向的是星号
left += 1 # 左指针右移
elif lst[right] != '*': # 如果右指针指向的不是星号
right -= 1 # 右指针左移
else: # 如果左指针指向的是数字,右指针指向的是星号
lst[left], lst[right] = lst[right], lst[left] # 交换左右指针指向的字符
left += 1 # 左指针右移
right -= 1 # 右指针左移
print(''.join(lst)) # 将列表转换为字符串并输出
```
样例输入:
```
12*23**567
```
样例输出:
```
***1223567
```
相关问题
对字符串由数字和 “*”星型字符两种字符无序构成的stra,,现在想把所有的星型字符挪到数组的左边,数字字符全部放到右边,数字字符之间的相互顺序不变。补充程序中所缺代码,完成上述功能。 【输入形式】 输入一个有数字和星号构成的字符串 【输出形式】 换位后的字符串 【样例输入】 12*23**567 【样例输出】 ***1223567
以下是完整代码:
#include <iostream>
#include <string>
using namespace std;
int main() {
string stra;
cin >> stra;
int len = stra.length();
int left = 0, right = len - 1;
while (left < right) {
while (left < right && stra[left] == '*') {
left++;
}
while (left < right && stra[right] != '*') {
right--;
}
if (left < right) {
swap(stra[left], stra[right]);
}
}
cout << stra << endl;
return 0;
}
输入样例:12*23**567
输出样例:***1223567
C语言在字符串A中查找字符串B
可以使用strstr函数来在字符串A中查找字符串B,该函数定义在string.h头文件中。示例代码如下:
```c
#include <stdio.h>
#include <string.h>
int main() {
char strA[100] = "Hello world";
char strB[10] = "world";
char* p = strstr(strA, strB);
if (p != NULL) {
int index = p - strA; // 计算字符串B在字符串A中的位置
printf("字符串B在字符串A中的位置是:%d\n", index);
} else {
printf("字符串A中没有找到字符串B\n");
}
return 0;
}
```
输出结果为:
```
字符串B在字符串A中的位置是:6
```
上述代码中,首先定义了两个字符数组strA和strB,其中strA表示要查找的字符串,strB表示要查找的子字符串。然后使用strstr函数来查找字符串B在字符串A中的位置,如果找到了,则返回字符串B在字符串A中的指针,否则返回NULL。最后计算出字符串B在字符串A中的位置,并输出结果。
相关推荐















