chapter6——输入n个字符串,按由小到大顺序输出

#include
#include
#include
using namespace std;
void swap3(char *p1,char *p2,char *p3);
void swap2(char *q1,char *q2);
//首先用数组a,b,c存储字符串;
//子函数swap3用于整体排序;
//子函数swap2用于两个字符串排序。
int main()
{
char a[100],b[100],c[100];
cin>>a;
cin>>b;
cin>>c;
swap3(a,b,c);
cout< return 0;
}
void swap3(char *p1,char *p2,char *p3)
{
if(strcmp(p1,p2)>0)
swap2(p1,p2);
if(strcmp(p1,p3)>0)
swap2(p1,p3);
if(strcmp(p2,p3)>0)
swap2(p2,p3);
}
void swap2(char *q1,char *q2)
{
char temp[100];
memset(temp,0,sizeof(char)*100); //temp数组初始化;
strcpy_s(temp,strlen(q1)+1,q1);
strcpy_s(q1,strlen(q2)+1,q2);
strcpy_s(q2,strlen(temp)+1,temp);

}


扩展:输入n个字符串,按由小到大顺序输出

#include
#include
#include
using namespace std;
void exchange(char (*p1)[100],int n);
void swap(char (*q1)[100],char (*q2)[100]);
#define N 100
//首先用a[N][100]数组存储字符串,N相对于要输入字符串数目要大
//子函数exchange用于整体排序;
//子函数swap用于两个字符串排序。
//
int main()
{
int i,n;
char a[N][100];
cin>>n;
for(i=0;icin>>a[i];
exchange(a,n);
for(i=0;icout<return 0;
}
void exchange(char (*p1)[100],int n)
{
int i,j;
for(i=0;ifor(j=i+1;jif(strcmp(*(p1+i),*(p1+j))>0)
swap(p1+i,p1+j);
}
void swap(char (*q1)[100],char (*q2)[100])
{
char temp[100];
memset(temp,0,sizeof(char)*100); //temp数组初始化;
strcpy_s(temp,strlen(*q1)+1,*q1);
strcpy_s(*q1,strlen(*q2)+1,*q2);
strcpy_s(*q2,strlen(temp)+1,temp);
}

你可能感兴趣的:(C++程序设计(谭浩强著))