输入一个字符串,编程实现将其中字母字符放在前面,数字字符放在后面生成一个新串,并输出。
时间: 2023-12-21 16:06:29 浏览: 26
可以先遍历原字符串,将字母字符和数字字符分别存储到两个新的字符串中,最后将两个字符串拼接起来即可。
以下是Python代码实现:
```
s = input() # 输入字符串
# 初始化两个空字符串
letters = ""
digits = ""
# 遍历原字符串
for c in s:
if c.isalpha(): # 如果是字母字符
letters += c
elif c.isdigit(): # 如果是数字字符
digits += c
# 拼接两个字符串
new_s = letters + digits
print(new_s) # 输出新串
```
例如,输入字符串为 "a1b2c3d4",则输出 "abcd1234"。
相关问题
C语言实现输入一个字符串,编程实现将其中字母字符放在前面,数字字符放在后面生成一个新串,并输出。
可以使用两个指针,分别指向新字符串的头和尾,遍历原字符串,若是字母字符就放在头指针处,若是数字字符就放在尾指针处,最后将新字符串输出即可。
以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h> // 包含字符处理函数的头文件
#define MAX_LEN 100 // 假设字符串最大长度为100
int main() {
char str[MAX_LEN + 1]; // 字符串数组
char new_str[MAX_LEN + 1]; // 新字符串数组
int len; // 字符串长度
int i; // 循环计数器
int head, tail; // 新字符串的头尾指针
// 输入字符串
printf("请输入一个字符串:");
fgets(str, MAX_LEN + 1, stdin);
len = strlen(str);
// 处理字符串
head = 0;
tail = len - 1;
for (i = 0; i < len; i++) {
if (isalpha(str[i])) { // 如果是字母字符
new_str[head++] = str[i];
} else if (isdigit(str[i])) { // 如果是数字字符
new_str[tail--] = str[i];
}
}
// 输出新字符串
new_str[len] = '\0'; // 添加字符串结束符
printf("新字符串为:%s\n", new_str);
return 0;
}
```
注意,这里使用了 `fgets()` 函数来输入字符串,因为 `gets()` 函数存在安全问题,不建议使用。同时,为了避免新字符串数组没有被完全覆盖,需要在数组末尾添加字符串结束符 `\0`。
c语言 输入一个字符串,编程实现将其中字母字符放在前面,数字字符放在后面生成一个新串,并输出。
好的,以下是 C 语言实现的代码,和之前的思路类似:
```
#include <stdio.h>
#include <ctype.h>
#include <string.h>
void swap(char *a, char *b) {
char temp = *a;
*a = *b;
*b = temp;
}
void charNumberSort(char *str) {
int left = 0, right = strlen(str) - 1;
while (left < right) {
while (left < right && isalpha(str[left])) left++;
while (left < right && isdigit(str[right])) right--;
if (left < right) {
swap(&str[left], &str[right]);
left++;
right--;
}
}
}
int main() {
char str[] = "Abc123def456";
charNumberSort(str);
printf("%s\n", str); // 输出 "abcdef123456"
return 0;
}
```
这里使用了 `ctype.h` 头文件中的 `isalpha()` 和 `isdigit()` 函数来判断字符是字母还是数字。在 `charNumberSort` 函数中,我们同样使用两个指针 `left` 和 `right` 分别指向字符串的左右两端。当左指针指向字母字符时,就向右移动;当右指针指向数字字符时,就向左移动。如果此时左指针指向的是数字字符,右指针指向的是字母字符,就交换它们的位置。交换完成后,左指针向右移动一格,右指针向左移动一格,继续执行下一轮循环,直到左右指针相遇为止。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)