将字符串中数字字符逆置
时间: 2023-10-04 12:08:33 浏览: 48
好的,可以使用以下Python代码实现:
```python
s = "abc123def456"
digits = [ch for ch in s if ch.isdigit()] # 获取字符串中的数字字符
digits.reverse() # 将数字字符逆置
result = ""
i = 0
for ch in s:
if ch.isdigit():
result += digits[i]
i += 1
else:
result += ch
print(result)
```
输出结果为:"abc321def654"。
相关问题
递归函数将字符串逆置
递归函数可以将字符串逆置。下面是一个C语言的例子:
```c
#include <stdio.h>
#include <assert.h>
void reverse(char *s) {
assert(s);
if(*s == '\0') {
return;
} else {
reverse(&s[1]);
putchar(s[0]);
}
}
int main() {
char str[32] = {0};
printf("Please enter string:");
gets(str);
printf("Final:");
reverse(str);
printf("\n");
return 0;
}
```
这个例子中,我们定义了一个递归函数`reverse`,它接受一个字符指针作为参数。函数首先判断当前字符是否为`\0`,如果是,则递归结束;否则,递归调用`reverse`函数,并将指针向后移动一位,然后打印当前字符。通过不断递归调用,最终实现了字符串的逆置。
字符指针将字符串逆置
可以使用两个指针,一个指向字符串的开头,一个指向字符串的结尾,交换两个指针所指向的字符,然后将指针向中间移动,重复这个过程直到两个指针相遇。下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
void reverse_string(char* str) {
char* start = str;
char* end = str + strlen(str) - 1;
while (start < end) {
char temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
int main() {
char str[] = "hello world";
printf("Original string: %s\n", str);
reverse_string(str);
printf("Reversed string: %s\n", str);
return 0;
}
```
输出结果为:
```
Original string: hello world
Reversed string: dlrow olleh
```