CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

一道字符串排序的题,大家帮忙看看问题出在哪?

楼主nysst_hxl()2006-07-03 21:05:40 在 C/C++ / C语言 提问

升序排序  
   
  #include<stdio.h>  
  #include<string.h>  
  void   main()  
  {  
  char   *bname[4];  
  printf("scanf   4\n");  
  int   x;  
  for(x=0;x<4;x++)  
  scanf("%s",bname[x]);     /*   这里输入字符串后,发生异常,然后就退出了   */  
  int   i,m;  
  void   sort(char   *name[],int);  
  m=sizeof(bname)/sizeof(char   *);  
  sort(bname,m);  
  printf("\n");  
  for(i=0;i<m;i++)  
  printf("%s\n",bname[i]);  
  }  
   
  void   sort(char   *name[],int   n)  
  {  
  char   *t;  
  int   i,j,k;  
  for(i=0;i<n;i++)  
  {  
  k=i;  
  for(j=i+1;j<n;j++)  
  {  
  if(strcmp(name[i],name[j])>0)  
  {  
  t=name[i];  
  name[i]=name[j];  
  name[j]=t;  
  }  
  }  
  }  
  } 问题点数:50、回复次数:4Top

1 楼UPCC(杂食动物)回复于 2006-07-03 21:13:53 得分 25

char   *bname[4];  
  -----------------  
  然后还要分配空间  
  for(int   i=0;   i<4;   i++)  
      bname[i]   =   (char*)malloc(sizeof(char)*N);//N就字符串最大值,自己设置  
  Top

2 楼nightfox(马可菠萝)回复于 2006-07-03 21:16:31 得分 25

for(x=0;x<4;x++)  
        scanf("%s",bname[x]);  
  这几个指针没有指向实际的空间.  
      你应该先为它们开辟实际的空间.  
        再给它们输入值.Top

3 楼UPCC(杂食动物)回复于 2006-07-03 21:17:27 得分 0

m=sizeof(bname)/sizeof(char   *);//这个肯定是4啊。  
   
  k=i;//这个没有作用,浪费了Top

4 楼nysst_hxl()回复于 2006-07-03 21:22:56 得分 0

多谢各位了,我刚才也估计是没有分配空间的原因,但是吃不准,所以来问一下。  
  因为刚才我在定义数组是就给了四个字符串来初始化,然后问题就解决了  
   
  哈哈,揭贴了  
  你们俩这下赚翻了  
  每人25分Top

相关问题

关键词

得分解答快速导航

  • 帖主:nysst_hxl
  • UPCC
  • nightfox

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo