C++函数能用递归法对一个整数数组进行倒置;再定义一个重载函数,该函数能对字符申数组中的字符串进行倒置后,编写 main 函数进行调用,并测试结果
时间: 2025-06-23 08:25:11 浏览: 10
在C++中,你可以通过递归的方法来实现数组的倒置。对于整数数组,例如`int arr[] = {1, 2, 3, 4, 5}`,你可以定义一个递归函数,如:
```cpp
void reverseArray(int* arr, int start, int end) {
if (start >= end)
return;
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
reverseArray(arr, start + 1, end - 1);
}
```
然后在main函数中调用这个函数:
```cpp
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
reverseArray(arr, 0, n - 1);
// 现在arr应该是{5, 4, 3, 2, 1}
// 对于字符数组(字符串),你需要先将它转换成字符指针,因为C++的string实际上就是一个字符数组
char str[] = "Hello, World!";
char* strPtr = str;
reverseArray(strPtr, 0, strlen(str) - 1); // 或者直接传入str,因为字符串结束会自动包含'\0'
std::cout << str; // 输出倒置后的字符串
return 0;
}
```
关于重载函数,如果要对字符数组(字符串)进行倒置操作,可以创建一个模板函数,这样可以处理不同类型的数组:
```cpp
template <typename T>
void reverseArray(T* arr, size_t start, size_t end) {
// 递归反转过程同上...
}
// 对于字符串的版本,可以直接调用上述模板函数
void reverseString(char* str) {
reverseArray<char*>(str, 0, strlen(str) - 1);
}
```
在`main`函数中,你可以像下面这样调用`reverseString`:
```cpp
char str[] = "Hello, World!";
reverseString(str);
std::cout << str;
```
阅读全文
相关推荐










