c++中的string 类有没有reverse函数
时间: 2024-11-25 17:16:27 浏览: 26
在C++中,`std::string` 类型确实有一个名为 `reverse` 的成员函数,用于反转字符串中的字符顺序。这个函数不会改变原始字符串,而是返回一个新的反转后的字符串。语法通常是这样的:
```cpp
std::string original = "Hello, World!";
std::string reversed = original.reverse(); // 这里实际上是返回了一个新字符串 "dlroW ,olleH"
```
然而,`reverse` 函数本身并不是直接作用于原字符串的,如果你想在原地修改字符串,你可以使用 `rbegin()` 和 `rend()` 函数结合迭代器来实现:
```cpp
std::string original = "Hello, World!";
auto it = original.begin();
auto end = original.end();
while (it != end) {
std::iter_swap(it++, end--);
}
```
但这不是 `reverse` 函数,而是手动实现了字符串反转。
相关问题
c++中的string有没有reverse
C语言中的string是一个字符数组,没有内置的reverse函数。但是可以通过编写自己的函数来实现字符串反转。以下是一个简单的例子:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *str) {
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
char temp = str[i];
str[i] = str[len - 1 - i];
str[len - 1 - i] = temp;
}
}
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
```
string的reverse函数c++
在C++中,没有内置的`reverse`函数可以直接对字符串进行反转。但是你可以通过迭代或者标准库中的算法来实现这个功能。这里是一个简单的例子,使用标准模板库(STL)中的`std::reverse`函数:
```cpp
#include <algorithm>
#include <string>
void reverseString(std::string& str) {
std::reverse(str.begin(), str.end());
}
// 示例用法
int main() {
std::string myStr = "Hello, World!";
reverseString(myStr);
std::cout << "Reversed String: " << myStr << std::endl; // 输出: "!dlroW ,olleH"
return 0;
}
```
在这个例子中,`std::reverse`函数接受两个迭代器作为参数,分别表示字符串的开始和结束位置,然后会将这两个位置之间的字符顺序翻转。
阅读全文