字符串排序

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

#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;
}  

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值