今天在做之前的題,有一道題網上的一種做法,讓我驚了,不是怎麼怎麼複雜而是感覺腦回路很驚奇,很牛逼,看代碼。
題意是輸入一組英文單詞,按字典順序輸出(大寫與小寫字母具有相同大小寫),排序輸出。
例如:輸入:Information Info Inform info Suite suite suit 輸出:Info info Inform Information suit Suite suite
//因爲按照正常的來說,輸出的是Info Inform Information Suite info suit suite
//所以我們可以把大寫轉換爲小寫,寫一個結構體,兩個字符串,一個放需要排序的,一個放轉換爲小寫的,排序按照小寫的排,輸出輸出大寫。
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
struct node
{
string a,b;
};
bool cmp(node x,node y)
{
return x.a<y.a;
}
node ns[100];
int main()
{
string tt;
int i,n=0;
while(cin>>tt)
{
ns[n++].a=tt;
}
for(i=0; i<n; i++)
{
ns[i].b=ns[i].a;
for(int j=0; j<ns[i].a.length(); j++)
{
if(ns[i].a[j]>='A'&&ns[i].a[j]<='Z')
ns[i].a[j]+='a'-'A';
}
}
sort(ns,ns+n,cmp);
for(i=0; i<n; i++)
cout<<ns[i].b<<" ";
cout<<endl;
for(i=0; i<n; i++)
cout<<ns[i].a<<" ";
cout<<endl;
return 0;
}
牛逼plus。