reverse char数组
时间: 2023-09-26 09:06:49 浏览: 49
您可以使用以下代码来反转一个字符数组:
```cpp
#include <iostream>
#include <algorithm>
int main() {
char arr[] = "Hello, World!";
int size = sizeof(arr) - 1; // 减去空字符的长度
std::reverse(arr, arr + size);
for (int i = 0; i < size; i++) {
std::cout << arr[i];
}
return 0;
}
```
这段代码中,我们使用了 `<algorithm>` 头文件中的 `reverse` 函数来反转字符数组。我们将 `arr` 数组传入 `reverse` 函数,并使用 `sizeof(arr) - 1` 来获取数组的长度(减去空字符的长度)。最后,我们遍历反转后的数组并输出结果。
希望能帮到您!如果您有任何其他问题,请随时提问。
相关问题
reverse char数组,reverse char数组的长度
要反转一个字符数组并获取反转后的长度,您可以使用以下代码:
```cpp
#include <iostream>
#include <algorithm>
#include <cstring>
int main() {
char arr[] = "Hello, World!";
int size = strlen(arr);
std::reverse(arr, arr + size);
for (int i = 0; i < size; i++) {
std::cout << arr[i];
}
std::cout << std::endl;
std::cout << "Length of the reversed array: " << size << std::endl;
return 0;
}
```
在这段代码中,我们使用了 `<algorithm>` 头文件中的 `reverse` 函数来反转字符数组。然后,我们使用 `<cstring>` 头文件中的 `strlen` 函数来计算反转后的数组的长度。最后,我们遍历反转后的数组并输出结果,并输出反转后数组的长度。
希望这对您有所帮助!如果您还有其他问题,请随时提问。
. 建立一个字符数组str[100],建立一个函数void input(char *p)从console输入一个字符串到数组中。编写一个递归调用的函数reverse(char *p),将p所指向的字符串翻转。
好的,我了解了你的问题。下面是实现这个功能的代码:
```c
#include <stdio.h>
#include <string.h>
void input(char *p);
void reverse(char *p);
int main()
{
char str[100];
input(str);
printf("Original string: %s\n", str);
reverse(str);
printf("Reversed string: %s\n", str);
return 0;
}
void input(char *p)
{
printf("Please enter a string: ");
scanf("%s", p);
}
void reverse(char *p)
{
int len = strlen(p);
if (len <= 1) return; // 递归终止条件:字符串长度为1或0
char temp = p[0];
p[0] = p[len-1];
p[len-1] = temp;
reverse(p+1); // 递归调用:翻转除了第一个和最后一个字符之外的子串
}
```
代码逻辑如下:
1. 在main函数中定义一个字符数组,并调用input函数从控制台输入一个字符串到数组中。
2. 输出原始字符串。
3. 调用reverse函数翻转字符串。
4. 输出翻转后的字符串。
5. input函数用于从控制台输入字符串到数组中,无需递归。
6. reverse函数用于翻转字符串,是一个递归函数。递归终止条件是字符串长度为1或0,递归调用是翻转除了第一个和最后一个字符之外的子串。
希望这个代码可以帮到你!