字符串中数字的逆序 c++
时间: 2024-05-02 07:04:42 浏览: 119
要将字符串中的数字逆序排列,你可以按照以下步骤进行操作:
1. 将字符串转换为字符数组,便于操作。
2. 使用两个指针,一个指向字符串的起始位置,一个指向末尾位置。
3. 遍历字符数组,当遇到数字字符时,交换起始位置和末尾位置的值,并将起始位置指针向后移动一位,末尾位置指针向前移动一位。
4. 重复上述步骤,直到起始位置指针超过或等于末尾位置指针。
5. 最后将字符数组转换回字符串。
下面是一个示例代码的实现:
```c
#include <stdio.h>
#include <string.h>
void reverseDigits(char* str) {
int start = 0;
int end = strlen(str) - 1;
while (start < end) {
// 判断是否为数字字符
if (str[start] >= '0' && str[start] <= '9') {
// 交换起始位置和末尾位置的值
char temp = str[start];
str[start] = str[end];
str[end] = temp;
start++; // 起始位置指针向后移动一位
end--; // 末尾位置指针向前移动一位
} else {
start++; // 起始位置不是数字字符,向后移动一位
}
}
}
int main() {
char str[] = "a1b2c3d4e5";
printf("原始字符串: %s\n", str);
reverseDigits(str);
printf("逆序排列数字后的字符串: %s\n", str);
return 0;
}
```
运行以上代码,输出结果为:
```
原始字符串: a1b2c3d4e5
逆序排列数字后的字符串: a5b4c3d2e1
```
希望能对你有所帮助!如果还有其他问题,请随时提问。
阅读全文