C语言用指针实现字符串反转
时间: 2024-11-13 20:16:44 浏览: 8
在C语言中,使用指针可以方便地实现字符串反转,因为指针可以直接操作内存地址。下面是一个简单的示例,利用两个指针,一个指向字符串的起始位置,另一个指向结束位置,然后交换它们所指向的字符,直到两个指针相遇或交错:
```c
#include <stdio.h>
#include <string.h>
void reverse(char* str) {
if (str == NULL || *str == '\0') return; // 避免除空字符串的情况
char* start = str;
char* end = str + strlen(str) - 1;
while (start < end) { // 当开始指针小于结束指针时循环
char temp = *start; // 临时存储开始处的字符
*start = *end; // 将结束处的字符放到开始处
*end = temp; // 将临时存储的字符放到结束处
start++; // 开始指针向后移动一位
end--; // 结束指针向前移动一位
}
}
int main() {
char str[] = "Hello, World!";
printf("Original string: %s\n", str);
reverse(str);
printf("Reversed string: %s\n", str); // 注意:这里不会改变原字符串,只是打印结果
return 0;
}
```
在这个例子中,`reverse()` 函数接收一个字符串指针作为参数,通过指针操作实现了字符串的反转,但是注意这种方法并不会改变原始字符串,因为它是在函数内部修改了指针指向的内容。
阅读全文