现在的位置: 首页 > 综合 > 正文

C++中逆序输出字符串和数字

2013年08月11日 ⁄ 综合 ⁄ 共 1419字 ⁄ 字号 评论关闭
#include<iostream>
#include<string>
#include<LIST>


using namespace std;

int main()
{   

//字符串逆序
//  string string1;
//  int n,i,temp;
//  cin>>string1;
// 
//  n=string1.size();
// 
//  for(i = 0; i < n / 2; i++)
//  {
//   temp=string1[i];
//   string1[i]=string1[n-i-1];
//   string1[n-i-1]=temp;
//  }
// 
//  cout<<string1<<endl;



// ******************************************************************************************************************************//
// 用list实现字符串的逆置
// ******************************************************************************************************************************//
// 	list<char> cLst;   //存储输入的字符串的每个字符
// 	list<char> cCvLst; //存储逆置后的字符串的每个字符
// 	string str;
// 	cout<<"Please a word:"<<endl;
// 	cin>>str;
// 
// 	//解析将输入的字符串分解成每个字符存入cLst
// 	for(list<char>::size_type index = 0; index != str.length(); ++index)
// 	{
// 		cLst.push_back(str[index]);
// 	}
// 
// 
// 	cout<<"Original word: "<<endl;
// 	for(list<char>::iterator cIt = cLst.begin(); cIt != cLst.end(); ++cIt)
// 	{
// 		cout<<*cIt<<"\t";
// 	}
// 	cout<<endl;
// 
// 	//用copy和front_insert实现逆置
// 	copy(cLst.begin(), cLst.end(), front_inserter(cCvLst));
// 
// 	cout<<"Converted!"<<endl;
// 	for(cIt = cCvLst.begin(); cIt != cCvLst.end(); ++cIt)
// 	{
// 		cout<<*cIt<<"\t";
// 	}
// 	cout<<endl;


 //数字逆序
 //位数
 int digits = 1;
 
 int testDig = 0;
 cin>>testDig;

    int tmp = testDig;
 if(abs(testDig) > 10)
 {
  while(abs(tmp) > 10)
  {
   tmp = abs(tmp) / 10;
   digits++;
  }
 }

 cout<<digits<<endl;

 //逆序输出
 tmp = testDig;
 for(int cycle = 0; cycle < digits; ++cycle)
 {
  cout<<abs(tmp) %10;
  tmp = abs(tmp) / 10;  
 }

 if(testDig < 0)
 {
  cout<<"-"<<endl;
 }


 system("pause");
 return 0;
}

抱歉!评论已关闭.