输入一个字符串,将其中的字母放前面,数字放后面
时间: 2024-03-20 21:42:33 浏览: 25
好的,可以使用双指针的方式来解决这个问题。具体的做法是,使用两个指针i和j,分别指向字符串的头和尾。
然后循环遍历字符串,如果i指向的字符是数字,就将i和j对应的字符交换,然后将j向前移动一位;如果i指向的字符是字母,就将i向后移动一位。
直到i和j相遇为止,这时候就可以得到一个字母在前、数字在后的字符串。
下面是具体的代码实现:
```python
def sort_string(s):
s = list(s)
i, j = 0, len(s) - 1
while i < j:
if s[i].isdigit():
s[i], s[j] = s[j], s[i]
j -= 1
else:
i += 1
return ''.join(s)
```
这样,你就可以将任意一个字符串中的字母放前面,数字放后面了。
相关问题
用C输入一个字符串,将其中的字母放前面,数字放后面
好的,可以使用以下代码实现:
```c
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main() {
char str[100], letter[100], digit[100];
int i, j = 0, k = 0;
printf("请输入一个字符串:");
scanf("%s", str);
for (i = 0; i < strlen(str); i++) {
if (isalpha(str[i])) { // 如果是字母
letter[j++] = str[i];
} else if (isdigit(str[i])) { // 如果是数字
digit[k++] = str[i];
}
}
letter[j] = '\0'; // 字母数组结尾标识符
digit[k] = '\0'; // 数字数组结尾标识符
strcat(letter, digit); // 将数字数组接到字母数组尾部
printf("处理后的字符串为:%s\n", letter);
return 0;
}
```
这段代码使用了 `isalpha` 和 `isdigit` 函数来判断字符是否为字母或数字,然后将字母和数字分别存储在 `letter` 和 `digit` 两个数组中,最后将它们拼接起来,并输出处理后的字符串。
输入一个字符串、将字母放前面,数字放后面,连接成新的字符串
好的,可以使用 Python 语言来实现这个功能。下面是代码示例:
```python
s = input("请输入一个字符串:")
letters = []
digits = []
# 将字母和数字分别存入不同的列表中
for ch in s:
if ch.isalpha():
letters.append(ch)
elif ch.isdigit():
digits.append(ch)
# 将列表中的元素连接成新的字符串
result = ''.join(letters + digits)
print("新的字符串是:", result)
```
这段代码首先要求用户输入一个字符串,然后将其中的字母和数字分别存入两个列表中。最后将两个列表中的元素连接起来,生成一个新的字符串,并输出到控制台。