C语言中如何使用指针实现字符串反转

```c

#include <stdio.h>

#include <string.h>

void reverse(char* str) {

int length = strlen(str);

char *start = str;

char *end = str + length - 1;

char temp;

while (start < end) {

temp = *start;

*start = *end;

*end = temp;

start++;

end--;

}

}

int main() {

char str[] = "Hello, World!";

printf("Before reverse: %s

", str);

reverse(str);

printf("After reverse: %s

", str);

return 0;

}

```

在这个例子中,我们定义了一个reverse函数,它接受一个字符串(字符数组)作为参数。然后,我们创建了两个指针,一个指向字符串的开始,另一个指向字符串的结束。我们在循环中交换这两个指针所指向的字符,然后将开始指针向前移动一位,将结束指针向后移动一位,直到两个指针相遇。这样,我们就实现了字符串的反转。

相关推荐
福尔摩斯张6 小时前
Axios源码深度解析:前端请求库设计精髓
c语言·开发语言·前端·数据结构·游戏·排序算法
在繁华处7 小时前
C语言经典算法:汉诺塔问题
c语言·算法
Bona Sun8 小时前
单片机手搓掌上游戏机(十一)—esp8266运行gameboy模拟器之硬件连接
c语言·c++·单片机·游戏机
酸钠鈀8 小时前
模拟IIC通讯 基于状态机
c语言
橘子真甜~10 小时前
C/C++ Linux网络编程6 - poll解决客户端并发连接问题
服务器·c语言·开发语言·网络·c++·poll
小年糕是糕手12 小时前
【C++】C++入门 -- 输入&输出、缺省参数
c语言·开发语言·数据结构·c++·算法·leetcode·排序算法
Star在努力13 小时前
C语言复习八(2025.11.18)
c语言·算法·排序算法
赖small强13 小时前
【Linux C/C++开发】第26章:系统级综合项目理论
linux·c语言·c++
仟濹14 小时前
【C/C++】经典高精度算法 5道题 加减乘除「复习」
c语言·c++·算法
车端域控测试工程师15 小时前
Autosar网络管理测试用例 - TC003
c语言·开发语言·学习·汽车·测试用例·capl·canoe