设计一个void类型的函数reverse_string,其功能是将一个给定的字符串逆序。例如,给定字符串为“hello”,逆序后为“olleh”。 ###函数接口定义如下: /* 函数原型参见main函数 */ ###裁判测试程序样例: #include <iostream> #include <string> using namespace std; /* 你的代码将嵌在这里 */ int main(int argc, char const *argv[]) { string str; getline(cin, str); //输入字符串 reverse_string(str); //逆序字符串str cout << str << endl; //输出逆序后的字符串 return 0; } ###输入样例: hello ###输出样例: olleh
时间: 2024-01-08 21:02:37 浏览: 103
字符串的逆序:输入为字符串,输出为字符串的逆序
下面是实现了题目要求的 `reverse_string` 函数的代码:
```c++
#include <iostream>
#include <string>
using namespace std;
void reverse_string(string& str) {
int len = str.size();
for (int i = 0; i < len / 2; i++) {
swap(str[i], str[len - 1 - i]);
}
}
int main(int argc, char const *argv[]) {
string str;
getline(cin, str); // 输入字符串
reverse_string(str); // 逆序字符串str
cout << str << endl; // 输出逆序后的字符串
return 0;
}
```
`reverse_string` 函数的参数是一个字符串的引用,函数内部使用双指针法将字符串逆序。具体来说,设字符串长度为 $n$,则函数使用两个指针 $i$ 和 $j$,初始时 $i=0$,$j=n-1$,在每一轮循环中,交换 $i$ 和 $j$ 指向的字符,然后将 $i$ 加 $1$,将 $j$ 减 $1$。循环的终止条件是 $i \geq j$。
最后,调用 `reverse_string` 函数逆序字符串,然后输出结果即可。
阅读全文