字符串排序

xiaoxiao2021-02-28  104

主要`功能:读取字符串函数,排序字符串并打印出来

#include<stdio.h> #include<string.h> #define SIZE 81 //限制字符串长度,包括\0 #define LIM 20 //可读入的最多行数 #define HALT "" //空字符串停止输入 void stsrt(char *string[],int num); char *s_gets(char * st, int n); int main(void) { char input[LIM][SIZE]; //储存输入的数组 char *ptstr[LIM]; //内涵指针变量的数组 int ct = 0; //输入计数 int k = 0 ; //输出计数 printf("input up to %d lines,and i wil sort them.\n",LIM); printf("to stop ,press the enter key at a line's start.\n"); while(ct < LIM && s_gets(input[ct],SIZE)!=NULL && input[ct][0]!='\0') { ptstr[ct] = input[ct]; //设置指针指向字符串 ct++; } stsrt(ptstr,ct); puts("\n here 's the sorted list"); for(k = 0; k<ct; k++) puts(ptstr[k]); return 0; } /* 字符串-指针-排序函数 */ void stsrt(char * string[], int num) { char *temp; int top,seek; for(top = 0;top <num-1;top++) for(seek = top + 1; seek < num;seek++) if(strcmp(string[top],string[seek])>0) { temp = string[top]; string[top] = string[seek]; string[seek] = temp; } } char * s_gets(char * st, int n) { char * ret; int i = 0; ret = fgets(st,n,stdin); if(ret) { while(st[i]!='\n' && st[i]!='\0') i++; if(st[i] == '\n') st[i] = '\0'; else while(getchar()!='\n') continue; } return ret; }

重点就是在于它排序的是指向字符串的指针,而不是字符串的本身。 还有选择排序算法

转载请注明原文地址: https://www.6miu.com/read-46259.html

最新回复(0)