题解:P5705 【深基2.例7】数字反转

· · 题解

前言

STL 是个好东西。

思路

乍一看题目,第一个想到逐位取数字倒着输出,但题目中的数是浮点数,所以这种方法肯定不行。(其实只是不想写而已)

所以考虑用字符串存数。

这里就要介绍 C++ STL 库里用来反转容器的 std::reverse() 函数。通常它有两个参数:首迭代器尾迭代器。因为数组和 std::string 本质上都属于 STL 规定的容器,所以这题可以直接用 std::reverse 解决。假设输入的字符串变量名是 str,如果你要使用 std::string,首尾迭代器就是 str.begin()str.end();如果你使用字符数组,首尾迭代器就是 strstr+strlen(str)。于是这道题就很简单了。

代码

#include<iostream> // 输入输出流
#include<algorithm> // std:reverse 函数
#include<string> // std::string
using namespace std;
int main(){
  string s;
  cin>>s;
  reverse(s.begin(),s.end());
  cout<<s<<endl;
  return 0;
}