freemandj 2020-03-15 10:02 采纳率: 100%
浏览 639
已采纳

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

  • 写回答

2条回答 默认 最新

  • Varible 2020-03-15 10:38
    关注

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

    #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”,这也是字符串。
    否则你自己应先动动脑子,至少要做一个代码不管错不错。

    望采纳

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛