如何简化C ++代码以反转字符?

时间:2009-12-07 09:11:30

标签: c++ visual-c++

您好我有这个程序可以反转我输入的字母。我正在使用iostream。我可以采用其他方式,将iostreamcin.getline替换为cin >> X吗?

我的代码:

 //Header Files
 #include<iostream>
 #include<string>
 using namespace std;

 //Recursive Function definition which is taking a reference
 //type of input stream parameter.
 void ReversePrint(istream&);

 //Main Function
 int main()
 {
  //Printing
  cout<<"Please enter a series of letters followed by a period '.' : ";

  //Calling Recursive Function
  ReversePrint(cin);

  cout<<endl<<endl;
  return 0;

 }

 //Recursive Function implementation which is taking a
 //reference type of input stream parameter.
 //After calling this function several times, a stage 
 //will come when the last function call will be returned
 //After that the last character will be printed first and then so on. 
 void ReversePrint(istream& cin)
 {
  char c;
  //Will retrieve a single character from input stream
  cin.get(c);

  //if the character is either . or enter key i.e '\n' then
  //the function will return
  if(c=='.' || c=='\n')
  {
   cout<<endl;
   return;
  }

  //Call the Recursive function again along with the
  //input stream as  paramter.
  ReversePrint(cin);

  //Print the character c on the screen.
  cout<<c;
 }

1 个答案:

答案 0 :(得分:3)

下面的函数从标准输入获取行,将其反转并写入stdout

#include <algorithm>
#include <string>
#include <iostream>

int main()
{
    std::string line;
    std::getline( std::cin, line );
    std::reverse( line.begin(), line.end() );
    std::cout << line << std::endl;
}