下面的是字符串的排序
什么情况下要给字符串数组分配空间
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编辑过]