C++初学者一名,不太明白怎么做这道题,求解答

设计一个void类型的函数reverse_string,其功能是将一个给定的字符串逆序。例如,给定字符串为“hello”,逆序后为“olleh”。

函数接口定义如下:
/* 函数原型参见main函数 */

裁判测试程序样例:
#include
#include
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

开头的等于对应的末尾的,中间不管。

#include <iostream>
#include <string>
using namespace std;
/* 你的代码将嵌在这里 */
void reverse_string(string &s) {
char x = '\0';
for (int i = 0;i < (int)(s.size() / 2);i ++) {
x = s[i];
s[i] = s[s.length() - i - 1];
s[s.length() - i - 1] = x;
}
return;
}
/*嵌入完毕!*/
int main(int argc, char const *argv[])
{
string str;
getline(cin, str); //输入字符串
reverse_string(str); //逆序字符串str
cout << str << endl; //输出逆序后的字符串
return 0;
}

另外有个STL的reverse、begin、end,但你提供的头文件不支持。
具体使用:

#include <algorithm>
#include <string>
...
/*定义*/
#define reverse_string(s) reverse(s.begin(),s.end());
/*ok*/
...

如果你不会“string”,你就用char数组+“\0”,这也是字符串。
否则你自己应先动动脑子,至少要做一个代码不管错不错。

望采纳