注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Aspirer's blog

停止维护,新博客地址:http://aspirer.wang/

 
 
 

日志

 
 

字符指针数组排序  

2009-07-11 20:44:07|  分类: 学习心得 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

字符指针数组排序 - aspirer - Aspirers blog

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

void sort(char **p, int n);
void freeArray(char **p, int n);
void print(char **p, int n);

int main(void)
{
 int i, n;
 char *str = NULL;
 char **ca;
 printf("length of array:");
 scanf("%d", &n);
 ca = (char **)malloc(sizeof(char *) * n);
 for (i = 0; i < n; ++i)
 {
  str = (char *)malloc(sizeof(char) * 100);
  fflush(stdin);
  gets(str);
  *(ca + i) = str;
  //puts(*(ca + i));
 }
 printf("strings you have inputed.\n");
 print(ca, n);
 sort(ca, n);
 printf("strings after sorting.\n");
 print(ca, n);
 freeArray(ca, n);
 return 0;
}

void sort(char **p, int n)
{
 int i, j, k;
 char *t;
 for (i = 0; i < n - 1; ++i)
 {
  k = i;
  for (j = i + 1; j < n; ++j)
  {
   if (strcmp(*(p + k), *(p + j)) == 1)
   {
    k = j;
   }
  }
  if (k != i)
  {
   t = *(p + k);
   *(p + k) = *(p + i);
   *(p + i) = t;
  }
 }
}

void freeArray(char **p, int n)
{
 int i;
 for (i = 0; i < n; ++i)
 {
  free(*(p + i));
 }
 free(p);
}

void print(char **p, int n)
{
 int i;
 for (i = 0; i < n; ++i)
 {
  puts(*(p + i));
 }
}

  评论这张
 
阅读(508)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018