C/C++复习:不等长字符串的排序(1)

<pre name="code" class="cpp">/*
 *Copyright(c)2016,烟台大学计算机与控制工程学院
 *All right reserved.
 *文件名称:77.cpp
 *作    者:董凯琦
 *完成日期:2016年4月22日
 *版 本 号:v1.0
 *
 *问题描述:用指向指针的指针的方法对5个字符串排序并输出。要求将排序单独写成一个函数。字符串和n在主函数中输入。最后在主函数中输出。


 *输入描述:n和n个字符串
 *程序输出:排序后的字符串
 */
#include <iostream>
#include <cstring>
using namespace std;
void sort(char **p,int n )
{
   int i,j;
   char s[80];
   for(i=0;i<n-1;i++)//使用冒泡排序法进行字符串的排序
        for(j=0;j<n-i-1;j++)
   {
       if(strcmp(p[j],p[j+1])>0)
       {
           strcpy(s,p[j]);  //P[j]即:*(p+j)
           strcpy(p[j],p[j+1]);
           strcpy(p[j+1],s);
       }
   }
}
int main()
{
  void sort(char **,int );
  int i,n;
  char **p,*pstr[20],str[20][80];
  cin>>n;
  for (i=0; i<n; i++)// 行指针指向每一行字符串的首地址
  pstr[i]=str[i];
  for (i=0; i<n; i++)//输入字符串
  cin>>pstr[i];
  p=pstr;
  sort(p,n);
  for (i=0; i<n; i++)
  cout<<pstr[i]<<endl;//输出字符串
  return 0;
}


 
 

你可能感兴趣的:(C/C++复习:不等长字符串的排序(1))