编写函数void reverse
时间: 2024-05-07 09:21:05 浏览: 60
可以使用以下代码来编写实现一个`void reverse`函数,该函数可以将一个字符串反转:
```c++
#include <iostream>
#include <string>
using namespace std;
void reverse(string &s) {
int left = 0, right = s.size() - 1;
while (left < right) {
swap(s[left], s[right]);
left++;
right--;
}
}
int main() {
string s = "hello world";
cout << "Before reverse: " << s << endl;
reverse(s);
cout << "After reverse: " << s << endl;
return 0;
}
```
这个函数使用了双指针的方法,从头和尾分别向中间遍历字符串,每次交换两个指针指向的字符,直到两个指针相遇。最终得到的字符串就是原字符串的反转。
相关问题
编写函数void reverse(string&s),用递归算法使字符串s倒序
好的,下面是函数的实现:
```c++
void reverse(string& s) {
if (s.empty()) {
return;
}
char first = s[0];
s.erase(0, 1);
reverse(s);
s += first;
}
```
这个函数使用了递归算法,首先判断字符串是否为空,如果是空字符串则不做处理,否则取出第一个字符,将其从字符串中删除,然后递归调用 `reverse` 函数,最后将第一个字符加到字符串的末尾,实现字符串的倒序。
编写函数void reverse(string &s),用递归算法使字符串s倒序
好的,我可以回答你的问题。
您的问题是关于编写一个函数来反转字符串的。下面是一个可能的实现:
```cpp
void reverse(string& str) {
int left = 0, right = str.length() - 1;
while (left < right) {
swap(str[left], str[right]);
left++;
right--;
}
}
```
这个函数接受一个字符串作为参数,并通过将字符串中的字符从左到右交换来反转字符串。
例如,如果您调用该函数并将字符串 "hello" 作为参数传递,它将修改该字符串,使其成为 "olleh"。
阅读全文