C++ 输入三个字符串,要求按照字母由小到大顺序输出,用函数模板实现!!!!

#include <iostream>
#include <string>
using namespace std;
template <class t>
t swap(t x,t y)
{
t temp;
temp=x;x=y;y=temp;
}
void main()
{
string a,b,c;
cin>>a>>b>>c;
if(a>b) swap(a,b);
if(a>c) swap(a,c);
if(b>c) swap(b,c);
cout<<a<<endl<<b<<endl<<c<<endl
}
编译出错,提示主函数swap处有误。可是我还是不理解。求大神指教!

#include <iostream>
#include <string>
using namespace std;
template <class t>
t swap(t x,t y)
{
t temp;
temp=x;x=y;y=temp;
}
void main()
{
string a,b,c;
cin>>a>>b>>c;
if(a.compare(b)>0) swap(a,b);
if(a.compare(c)>0) swap(a,c);
if(b.compare(c)>0) swap(b,c);
cout<<a<<endl<<b<<endl<<c<<endl;
}
这样就可以了,调用String类里面的compare函数就可以比较了~
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-06
如果你是对首字母进行比较来排序的话需要做一个字符截取,即截取第一个字符,并将字符转换成ACSII码,并转译成int型而后再用你这个方法来比较!
第2个回答  2013-03-07


使用命名空间std;
模板
万吨掉期(TX,TY)
{
T为温度;
TEMP = X,X = Y,Y =温度;
}
无效的主要()
{
字符串A,B,C; BR /> CIN>;> >> B >> C;
(a.compare(B)> 0)掉期(A,B);
(C)0)(一个比较冷静期(A,C); BR />(b.compare(C)> 0)掉期(B,C);
法院<< A << endl << B << endl << C << endl;}
BR />这样就可以比较内部的函数调用String类的比较
第3个回答  2013-03-07

#包括
使用命名空间std;
模板
吨掉期(TX,TY)
{
> T温度;
TEMP = X,X = Y,Y =温度;
}
无效的主要()
{
字符串A,B,C; BR /> CIN >> A >> B >> C;
(a.compare(B)> 0)掉期(A,B);
(一比较(C)> 0 )掉期(A,C);
(b.compare(C)> 0)掉期(B,C);
法院<< A << endl << B << endl << C << endl;}

这样就可以比较函数调用String类的内部可以比较
相似回答