输入一个字符串,编程实现将其中字母字符放在前面,数字字符放在后面生成一个新串,并输出。
时间: 2024-03-18 09:41:51 浏览: 33
好的,可以使用两个指针,一个从字符串左边开始遍历,一个从右边开始遍历,遍历过程中,把左边的字母字符与右边的数字字符交换位置。以下是示例代码:
```
#include <iostream>
using namespace std;
void swap(char &a, char &b) {
char temp = a;
a = b;
b = temp;
}
void charNumberSort(string &str) {
int left = 0, right = str.length() - 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() {
string str = "Abc123def456";
charNumberSort(str);
cout << str << endl; // 输出 "abcdef123456"
return 0;
}
```
在 `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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)