| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 715 人关注过本帖
标题:字符串数组的空间分配问题 -------排序问题
只看楼主 加入收藏
zerocn
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2006-4-11
收藏
 问题点数:0 回复次数:6 
字符串数组的空间分配问题 -------排序问题

下面的是字符串的排序
什么情况下要给字符串数组分配空间
char *str[100]
int a[100];
为什么sort();里面的char *pstr[]不用分配空间

还有不的排序好像有问题了 ,但是不知道要怎么改



#include "conio.h"
#include "stdio.h"
#include "malloc.h"
#define N 20
main()
{
void sort(char *pstr[N],int num);
char *str[N];
int num,i;
printf("Input the num:");
scanf("%d",&num);
for(i=0;i<num;i++) /* 输入字符串 */
{str[i]=(char *)malloc(sizeof(char)*N);
printf("please input the No.%d string:",i+1);
scanf("%s",str[i]);
}

sort(str,num);
for(i=0;i<num;i++)
free(str[i]);

getch();


}

void sort(char *pstr[N],int num)
{
int i,j;
char temp[N];
printf("------------------------------------\n");
for(j=0;j<num;j++) /* 冒泡排序 */
for(i=j;i<num;i++)
{
if( strcmp(*pstr[i] , *pstr[i+1] ) > 0 )
{ strcpy(temp,pstr[i]);
strcpy(pstr[i],pstr[i+1]);
strcpy(pstr[i+1],temp);
}

}
printf("After sort:\n"); /* 输入排序后的结果 */
for(i=0;i<num;i++)
{
printf("%s\n",pstr[i]);

}
}

[此贴子已经被作者于2007-3-24 19:56:49编辑过]

搜索更多相关主题的帖子: 分配问题 字符 空间 数组 str 
2007-03-23 23:00
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

字符串要分配空间来存储.


倚天照海花无数,流水高山心自知。
2007-03-23 23:05
zerocn
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2006-4-11
收藏
得分:0 
以下是引用nuciewth在2007-3-23 23:05:10的发言:

字符串要分配空间来存储.

可是char *pstr[N] N是20 这不是已经分配了了一个空间了吗
如果是int pint[N]需不需要分配空间

2007-03-23 23:08
zerocn
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2006-4-11
收藏
得分:0 

我分配了空间后 输入字符串后,程序就自动退出了
#include "conio.h"
#include "stdio.h"
#include "malloc.h"
#define N 20
main()
{
void sort(char *pstr[N],int num);
char *str[N];
int num,i;
printf("Input the num:");
scanf("%d",&num);
for(i=0;i<num;i++)
{printf("please input the No.%d string:",i+1);
str[i]=(char *)malloc(sizeof(char)*N) ;
scanf("%s",*str[i]);
}
sort(*str,num);
getch();


}

void sort(char *pstr[N],int num)
{
int i,j;
char temp[N];
printf("------------------------------------");
for(j=0;j<num;j++)
for(i=0;i<num-j;i++)
{ pstr[i]=(char *)malloc(sizeof(char)*N);
if( strcmp( pstr[i] , pstr[i+1] ) > 0 )
{ strcpy(temp,pstr[i]);
strcpy(pstr[i],pstr[i+1]);
strcpy(pstr[i+1],temp);
}
}
printf("After sort:\n");
for(i=0;i<num;i++)
{printf("%s",pstr[i]);
free(pstr[i]);


}

[此贴子已经被作者于2007-3-23 23:17:57编辑过]

2007-03-23 23:17
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
收藏
得分:0 
scanf("%s",*str[i]);

wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-03-24 00:12
zerocn
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2006-4-11
收藏
得分:0 
2007-03-24 13:41
zerocn
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2006-4-11
收藏
得分:0 

编辑了 新问题

2007-03-24 20:06
快速回复:字符串数组的空间分配问题 -------排序问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014975 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved