c++ - 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 的方法。你能帮我解决这个问题吗?
解决方案
写这样一个函数很简单
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
推荐阅读
- android - 如果我需要使用 jobInfo 执行重复任务,如何设置 jobFinished()?
- php - 不要刷新以保持表单打开
- c++ - C++ 中 RUBY 的 GEMS 等价物是什么?
- monitoring - 监控异构基础设施的推荐解决方案是什么?
- javascript - 过滤数据并映射唯一接收到的数据
- hadoop - hdfs 删除正在写入的文件
- javascript - 如何将用户输入的日期时间转换为 UTC 并在 Javascript 中使用远程服务器存储在数据库中
- javascript - allowEdit 属性不适用于 Cordova 应用程序中的 iOS 相机
- docker - 如何正确连接docker中的工作节点?
- ios - 将数据保存在特定用户 ID iOS - Alamofire, Json