如何用C语言实现数组或字符串元素的逆序排列?
时间: 2024-11-22 19:42:50 浏览: 31
在C语言中,我们可以使用两个指针,一个指向数组或字符串的开头,另一个指向结尾,然后交换它们指向的元素,逐个向中间移动,直到两个指针相遇。以下是两种常见的方法:
**1. 数组逆序排列示例:**
```c
void reverse_array(int arr[], int start, int end) {
while (start < end) {
// 交换arr[start]和arr[end]
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
// 移动指针
start++;
end--;
}
}
// 使用示例
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
reverse_array(arr, 0, n - 1);
// 输出逆序后的数组
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
**2. 字符串逆序排列示例(C语言本身没有内置的字符串类型,这里假设我们有一个字符数组表示字符串):**
```c
#include <stdio.h>
#include <string.h>
void reverse_string(char str[]) {
int len = strlen(str) - 1;
while (len > 0) {
char temp = str[len];
str[len] = str[0];
str[0] = temp;
len--;
}
}
int main() {
char str[] = "Hello, World!";
reverse_string(str);
// 输出逆序后的字符串
printf("%s\n", str);
return 0;
}
```
阅读全文