c语言字符串排序问题!

2020-09-18 教育 66阅读
不用字符串函数。
本题的一个完整的c程序如下,程序在win-tc和Dev-c++下都调试通过。
#include
#include
#include
#define N 3/* 设定要输入的字符串个数,可更改 */
int cmp(char *p1,char *p2) /* 字符串比较函数 */
{int i=0;
while (*(p1+i)==*(p2+i))
if (*(p1+i++)=='\0') return 0; /* 这里是先判断*(p1+i)=='\0',然后再是i++ */
return (*(p1+i)-*(p2+i));
}
void sort(char *a[N]) /*排序函数*/
{char *temp;
int i,j;
for(i=0;ifor(j=i+1;jif(cmp(a[i],a[j])<0)
{temp=a[i];/* 交换的是字符串的地址,不是字符串的内容,可更改 */
a[i]=a[j];
a[j]=temp;
}
}
int main(void )
{int i;
char s[N][81],*p[N];/* 设定每个字符串不超过80字节 */
printf("Please input %d strings one by one:\n",N);
for(i=0;i{gets(s[i]);
p[i]=s[i];
}
sort(p);
printf("The sequence after sort is:\n");
for(i=0;iprintf("%s\n",p[i]);
getch();
return 0;
}
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com