网站首页 > 文章中心 > 其它

c语言中的按字典排序函数

作者:小编 更新时间:2023-08-20 14:19:59 浏览量:105人看过

C语言 字符串数组字典排序

用二维数组记录书名,再声明一个指针数组并使各元素分别指向各书名,然后对指针数组元素按其指向的书名的字典顺序排序.这样比直接拷贝书名的效率会高些.举例如下:

#include?"stdio.h"

#include?"string.h"

#define?N?10

void?mysort(char?*s[],int?n){

int?i,j,k;

for(i=0;in;i++){

for(k=i,j=k+1;jn;j++)

if(strcmp(s[k],s[j])0)

k=j;

if(i!=k){

s[i]=(char?*)((unsigned)s[i]^(unsigned)s[k]);//交换指针

s[k]=(char?*)((unsigned)s[k]^(unsigned)s[i]);

s[i]=(char?*)((unsigned)s[i]^(unsigned)s[k]);

}

int?main(void){

int?i,k;

for(i=0;iN;pbook[i]=book[i++]);

printf("Please?enter?10?book-name...\n");

for(i=0;iN;pbook[i]=book[i++])

scanf("%s",book+i);

mysort(pbook,N);

return?0;

c语言中如何通过函数按字典顺序排列输入的十个字符串

如果使用的是冒泡排序,那么和整数排序唯一的不同就是这个部分:

if(a[j]a[j+1])

swap(a[j],a[j+1]);

那么在字符串排序的时候,需要用到一个库函数叫strcmp(char a[],char b[]);

这个函数在cstring库中[或者c语言中在string.h库中]

这个函数的用法就是输入字符串a,b,判断a,b的字典序大小.

若a的字典序小返回负值

若a的字典序和b相同返回0

若a的字典序大于b的字典序返回正数

然后你将上面冒泡的部分改一下的话就是:

if(strcmp(a[j],a[j+1])0)

这样的话就可以实现冒泡排序了.

如果你使用的是系统快排的话,你可以用string,也可以定义一个结构体

struct?Node{

char?ch[1000];

bool?cmp(const?Node?A,const?Node?B){

return?strcmp(A.ch,B.ch)0;

int?main(){

...

sort(s+1,s+10+1,cmp);

这样的话也是可以实现的.

C语言编程解决字符串数组字典排序

#include?stdio.h

#include?string.h

const?int?MAXLEN?=?100;

const?int?MAXSIZE?=?10;

void?sort(char?title[][MAXLEN],int?n)?{//排序

char?tstr[MAXLEN];

for(i?=?0;?i?n?-?1;?++i)?{

k?=?i;

for(j?=?i?+?1;?j?n;?++j)?{

if(strcmp(title[k],title[j])?0)

k?=?j;

if(k?!=?i)?{

strcpy(tstr,title[k]);

strcpy(title[k],title[i]);

strcpy(title[i],tstr);

void?show(char?s[][MAXLEN],int?n)?{

int?i;

for(i?=?0;?i?n;?++i)

printf("%s",s[i]);

puts("?");

int?main(void)?{

char?s[MAXSIZE][MAXLEN];

for(i?=?0;?i?MAXSIZE;?++i)?{

fgets(s[i],MAXLEN,stdin);

printf("排序前:\n");

show(s,MAXSIZE);

sort(s,MAXSIZE);

printf("排序后:\n");

C语言题:将一组字符串按字典顺序输出.(通过函数调用完成)

将一组字符串按字典顺序输出的源代码如下:

#include stdio.h

int main ()

{

printf("what is your name ?\n");//转化说明字符/n换行

scanf("%s,name");//输入一个字符串,使用了%s的转化修饰符,表示输入字符串

printf("hello,%s.\n",name);//输出字符串

return 0;

扩展资料

以上就是土嘎嘎小编为大家整理的c语言中的按字典排序函数相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章