首页 > 解决方案 > C ++中循环的替代方案

问题描述

我想在不使用循环的情况下反转字符串。我的循环代码如下所示:

#include <iostream>
#include <string>

using namespace std;

string reverseString(string str) {
    string changedString;
    int strLength = int(str.length() - 1);
    for(int i {strLength}; i >= 0; i--) {
        changedString.push_back(str.at(i));
    }
    return changedString;
}

int main() {

    string str;

    cout << "Enter a string to reverse it:\n" << flush;
    cin >> str;
    cout << reverseString(str) << flush;
} 

现在我需要编写一个没有循环的函数。只能使用 String 的方法。你能帮我解决这个问题吗?

标签: c++stringalgorithmloopsreverse

解决方案


写这样一个函数很简单

std::string reverse( const std::string &s )
{
    return { s.rbegin(), s.rend() };
}

这是一个演示程序

#include <iostream>
#include <string>

std::string reverse( const std::string &s )
{
    return { s.rbegin(), s.rend() };
}

int main() 
{
    std::string s( "Hello World" );

    std::cout << s << '\n';
    std::cout << reverse( s ) << '\n';

    return 0;
}

它的输出是

Hello World
dlroW olleH

推荐阅读