C++指针实现字符串按逆序存放
时间: 2024-11-29 16:37:01 浏览: 1
在C++中,我们可以使用指针和字符数组来实现字符串的逆序存放。这里是一个简单的示例:
```cpp
#include <iostream>
// 定义一个函数,接收指向字符串首字符的指针,并返回指向其末尾的指针
char* reverseString(char* str) {
if (str == nullptr) return str; // 如果输入空指针,直接返回
char* end = str + strlen(str) - 1; // 计算字符串的结束位置
while (end > str) { // 当end大于str时,开始交换
std::swap(*str, *end); // 使用std::swap交换当前字符
str++; // 移动str到下一个字符
end--; // 移动end到前一个字符
}
return str;
}
int main() {
char str[] = "Hello, World!";
char* reversedStr = reverseString(str);
std::cout << "Reversed String: " << reversedStr << std::endl;
// 注意,由于我们改变了原字符串,下面的语句会打印出反转后的结果
// std::cout << "Original string still points to: " << str << std::endl;
// 清理内存
delete[] reversedStr; // 由于不是动态分配,这里不需要delete,但可以提醒注意内存管理
return 0;
}
```
在这个例子中,`reverseString` 函数通过两个指针从两端向中间移动并交换字符实现了字符串的逆序。请注意,这个操作并没有创建新的字符串副本,而是直接修改了原始字符串。
阅读全文