将一个字符数组 中的元素按逆序重新存放。
时间: 2023-06-05 15:06:14 浏览: 47
可以使用双指针,一个指向数组的开头,一个指向数组的结尾,同时向中间移动并交换对应的元素,直到两个指针相遇为止。以下是 C++ 代码示例:
void reverseString(char* s, int sSize){
int left = 0, right = sSize - 1;
while (left < right) {
char temp = s[left];
s[left++] = s[right];
s[right--] = temp;
}
}
相关问题
用C语言编写程序将一个字符数组中的元素按逆序重新存放。
好的,这个问题属于编程问题。下面是可以实现该功能的C语言代码:
```
#include <stdio.h>
#include <string.h>
void reverse(char str[], int length){
int start = 0;
int end = length - 1;
char temp;
while(start < end){
temp = str[start];
str[start] = str[end];
str[end] = temp;
start++;
end--;
}
}
int main(){
char str[] = "Hello, world!";
int length = strlen(str);
reverse(str, length);
printf("%s\n", str);
return 0;
}
```
该代码将字符串 "Hello, world!" 倒序输出。
递归法;将一个字符数组中的元素按逆序在本数组中重新存放
可以使用递归法将一个字符数组中的元素按逆序重新存放。具体实现方法如下:
void reverse(char[] arr, int start, int end) {
if (start >= end) {
return;
}
char temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
reverse(arr, start + 1, end - 1);
}
其中,start 表示要反转的子串的起点,end 表示要反转的子串的终点。每次交换 start 和 end 对应的两个字符,然后递归地处理 start + 1 和 end - 1 对应的子串,直到 start >= end 时停止。
对于您前面向我说了什么,我来给您讲个笑话吧:为什么学校的天台上没有草?因为上面都是学霸,草莓不敢长啊!