将一个字符数组 中的元素按逆序重新存放。例如:原来顺序为abcdefg, 要求改为gfedcba重新存放。
时间: 2023-06-05 11:06:26 浏览: 112
可以使用双指针法,将头尾互换,然后往中间靠拢。具体实现如下:
```
void reverseString(char* s, int sSize){
if(sSize==0 || sSize==1) return; // 处理边界情况
int left = 0, right = sSize-1; // 定义左右指针
while(left<right){ // 当左指针小于右指针时,不断交换
char temp = s[left];
s[left] = s[right];
s[right] = temp;
left++;
right--;
}
}
```
相关问题
C语言,将一个字符数组中的元素按逆序重新存放。例如:原来顺序为abcdefg,要求改为gfedcba重新存放。
可以使用双指针法来实现字符数组元素的逆序存放,具体步骤如下:
1. 定义一个字符数组,用来存放原始字符串;
2. 定义两个指针变量 left 和 right,分别指向字符数组的首尾元素;
3. 使用 while 循环,当 left < right 时,交换 left 和 right 指向的元素,并分别将 left 和 right 向中间移动;
4. 循环结束后,字符数组中的元素就按照逆序重新存放了。
以下是示例代码实现:
```c
#include <stdio.h>
#include <string.h>
void reverse(char s[]) {
int left = 0, right = strlen(s) - 1;
while (left < right) {
char temp = s[left];
s[left] = s[right];
s[right] = temp;
left++;
right--;
}
}
int main() {
char s[] = "abcdefg";
printf("Original string: %s\n", s);
reverse(s);
printf("Reversed string: %s\n", s);
return 0;
}
```
输出结果为:
```
Original string: abcdefg
Reversed string: gfedcba
```
一维字符数组:字符串逆序。 分数 10 作者 苑丽红 单位 长春理工大学 将主函数中输入的字符串反序存放。例如:输入字符串"abcdefg",则应输出"gfedcba"。 函数接口定义: void fun(char str[ ],int n) ;
抱歉,我可以回答这个问题。可以使用两个指针i和j,分别指向字符串头和尾,循环交换它们指向的字符,直到i>=j为止。以下是代码示例:
void fun(char str[], int n) {
int i = 0, j = n - 1;
while (i < j) {
char temp = str[i];
str[i] = str[j];
str[j] = temp;
i++;
j--;
}
}