【发布时间】:2020-03-21 19:09:31
【问题描述】:
我想在不使用循环的情况下反转字符串。我的循环代码如下:
#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 的方法。你能帮我解决这个问题吗?
【问题讨论】:
-
这能回答你的问题吗? How to reverse an std::string?
-
顺便说一句,当您通过值传递字符串时,您可以将反转存储在参数本身中并删除
changedString,或者通过引用传递以避免不必要的复制 -
为了重复一个过程,您将需要一个循环,无论您是明确编写循环还是使用具有循环的函数。甚至递归也可以被认为是一个循环。
标签: c++ string algorithm loops reverse