采用指针法实现字符数组逆序存放
时间: 2023-07-20 20:12:28 浏览: 126
可以通过指针法来实现字符数组逆序存放,具体步骤如下:
1. 定义一个字符数组并赋值;
2. 定义两个指针,分别指向数组的首尾位置;
3. 使用循环将指针交换位置,直到两个指针相遇为止;
4. 输出逆序后的字符数组。
示例代码如下:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *str) {
char *p1, *p2;
p1 = str;
p2 = str + strlen(str) - 1;
while (p1 < p2) {
char temp = *p1;
*p1 = *p2;
*p2 = temp;
p1++;
p2--;
}
}
int main() {
char str[] = "hello world";
printf("Original string: %s\n", str);
reverse(str);
printf("Reversed string: %s\n", str);
return 0;
}
```
输出结果为:
```
Original string: hello world
Reversed string: dlrow olleh
```
相关问题
用字符数组或字符指针做函数参数编程实现字符串逆序存放功能_C语言系列(八):指针的世界...
下面是一个使用字符指针实现字符串逆序存放的示例代码:
```c
#include <stdio.h>
#include <string.h>
void reverse_string(char *str);
int main()
{
char str[100];
printf("Enter a string: ");
fgets(str, 100, stdin);
// fgets会将输入的换行符也存储在字符串中,需要将其替换为结束符'\0'
str[strcspn(str, "\n")] = '\0';
reverse_string(str);
printf("Reversed string: %s\n", str);
return 0;
}
void reverse_string(char *str)
{
int len = strlen(str);
char *start = str;
char *end = str + len - 1;
while (start < end) {
char temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
```
该程序首先使用 `fgets` 函数从标准输入读取一个字符串,并将其存储在字符数组 `str` 中。然后使用 `strcspn` 函数查找字符串中的换行符位置,并将其替换为结束符 `'\0'`。接下来调用 `reverse_string` 函数对字符串进行逆序存放。最后输出逆序存放后的字符串。
`reverse_string` 函数的实现比较简单,它使用两个指针 `start` 和 `end` 分别指向字符串的首尾位置,然后交换它们所指向的字符,并将指针向中间移动,直到两个指针相遇。这样就可以完成字符串的逆序存放。
编写一个函数,实现将字符数组中的字符串逆序存放的功能
好的,下面是函数的代码:
```c
void reverse(char arr[]) {
int len = strlen(arr);
for (int i = 0; i < len / 2; i++) {
char temp = arr[i];
arr[i] = arr[len-i-1];
arr[len-i-1] = temp;
}
}
```
这个函数的参数是一个字符数组,函数的作用是将该字符数组中的字符串逆序存放。具体实现是通过双指针的方式,从两端开始交换字符,直到中间位置。
阅读全文
相关推荐













