ytu 1064: 输入三个字符串,按由小到大的顺序输出(水题,字符串处理)

1064: 输入三个字符串,按由小到大的顺序输出

Time Limit: 1 Sec   Memory Limit: 128 MB
Submit: 471   Solved: 188
[ Submit][ Status][ Web Board]

Description

输入三个字符串,按由小到大的顺序输出。分别使用指针和引用方式实现两个排序函数。在主函数中输入和输出数据。

Input

3行字符串

Output

按照从小到大输出成3行。由指针方式实现。
按照从小到大输出成3行。由引用方式实现。
 

Sample Input

cde
afg
abc

Sample Output

abc
afg
cde
abc
afg
cde
 
  水题,字符串处理
  这道题还是比较有意思的,我自己用写了一个字符串比较模板函数,写了两个排序函数。重又巩固了一下这方面的基础。
  代码
 1 #include <iostream>

 2 #include <string.h>

 3 using namespace std;  4 template <class T>

 5 int mystrcmp(const T a,const T b)  6 {  7     int i;  8     for(i=0;a[i]||b[i];i++){  9         if(a[i]=='\0') 10             return -1; 11         else if(b[i]=='\0') 12             return 1; 13         else if(a[i]<b[i]) 14             return -1; 15         else if(a[i]>b[i]) 16             return 1; 17  } 18     return 0; 19 } 20  

21 void sort1(char *a,char *b,char *c) 22 { 23     char t[100]; 24     if(mystrcmp(a,b)==1)    //a>b

25  strcpy(t,a),strcpy(a,b),strcpy(b,t); 26     if(mystrcmp(b,c)==1)    //b>c

27  strcpy(t,b),strcpy(b,c),strcpy(c,t); 28     if(mystrcmp(a,b)==1)    //a>b

29  strcpy(t,a),strcpy(a,b),strcpy(b,t); 30 } 31  

32 void sort2(string &a,string &b,string &c) 33 { 34     string t; 35     if(mystrcmp(a,b)==1)    //a>b

36         t=a,a=b,b=t; 37     if(mystrcmp(b,c)==1)    //b>c

38         t=b,b=c,c=t; 39     if(mystrcmp(a,b)==1)    //a>b

40         t=a,a=b,b=t; 41 } 42  

43 int main() 44 { 45     void sort1(char *,char *,char *); 46     void sort2(string &,string &,string &); 47     char s1[100],s2[100],s3[100]; 48     char *p1,*p2,*p3; 49     string r1,r2,r3; 50     cin>>s1>>s2>>s3; 51     r1=string(s1); 52     r2=string(s2); 53     r3=string(s3); 54     p1=s1; 55     p2=s2; 56     p3=s3; 57  sort1(p1,p2,p3); 58     cout<<s1<<endl<<s2<<endl<<s3<<endl; 59  sort2(r1,r2,r3); 60     cout<<r1<<endl<<r2<<endl<<r3<<endl; 61     return 0; 62 } 63  

64 /************************************************************** 65  Problem: 1064 66  User: freecode 67  Language: C++ 68  Result: Accepted 69  Time:4 ms 70  Memory:1272 kb 71 ****************************************************************/

 

Freecode : www.cnblogs.com/yym2013

你可能感兴趣的:(字符串处理)