似乎无法打印我的字符串

时间:2017-02-11 13:01:06

标签: c++

所以这是我代码的一个片段:

    void reverse(string query, string reverseQuery) {
        unsigned int i;

        for(i=0; i<query.length(); i++) {
            reverseQuery[i] = query[query.length()-1-i];
        }
        cout << reverseQuery << endl;
        return;
    }

代码中还包含iostream,string和using namespace std的标头。我面临的问题是,当我尝试输出字符串reverseQuery时,没有任何结果。谁知道为什么?谢谢!

1 个答案:

答案 0 :(得分:1)

您的片段应如下所示:

std::string reverse(const string& query) {
    std::string reverseQuery(query.length(),0); // <<<<< Ensure that the size is the same
    for(unsigned i=0; i<query.length(); i++) {
        reverseQuery[i] = query[query.length()-1-i];
    }
    // cout << reverseQuery << endl;
    return reverseQuery;
}

使用标准c ++字符串实现这一目标的简短和惯用代码是

std::string reverseQuery(query);
std::reverse(std::begin(reverseQuery),std::end(reverseQuery));