首页 > 编程语言 > 详细

通过函数调用对字符串数组进行各种排序

时间:2015-05-10 17:18:49      阅读:353      评论:0      收藏:0      [点我收藏+]

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define LINE 3
#define RANK 100
void charater_string(int n,char*ptr[ ]);//字符串输出

void alphabet_list(int n,char*str[]);//按ASCII字母顺序排序

void string_length(int n,char*ptr[]);//按字符串长度排序

void First_word_length(int n,char*ptr[]);//按第一个单词长短排序
int string_in(char *ptr);//取第一个单词字符数
void Quit();//终止程序

int main(void)
{ 
    int i,j,num;
   char arr[LINE][RANK];
   char *string[LINE];
   printf("Please enter charater string.\n");
   for(i=0;i<LINE;i++)
     {
         gets(arr[i]) ; 
          string[i]=arr[i];     
     } 
     while(1)
     {
     printf("Please choice number:\n");
     printf("1)输出字符串列表       2)按ASCII顺序输出字符串\n");
     printf("3)按长度递增输出       4)按字符串第一个单词长度输出    5)退出\n");
     scanf("%d",&num);
     switch(num)
     {
        case 1:charater_string(LINE,string);
               break;
        case 2:alphabet_list(LINE,string);
               break;
       case 3:string_length(LINE,string);
               break;
        case 4:First_word_length(LINE,string);
               break;
        case 5:Quit();
               break; 
        default:break;
     }

     }
     return 0;

}
void charater_string( int n,char*ptr[ ])
{
    int i=0;
    for(i=0;i<n;i++)
    puts(ptr[i]);
}

void alphabet_list(int n,char*str[ ])
{
    int i,j;
    char *temp;
    for(i=0;i<n-1;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(strcmp(str[i],str[j])>0)
            {
               temp= str[j];
              str[j]= str[i];
              str[i]= temp;
            }

        }
    }
    charater_string(n,str);
}

void string_length( int n,char*ptr[ ])
{
    int i,j;
    char *temp;
    for(i=0;i<n-1;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if((strlen(ptr[i])-strlen(ptr[j]))>0)
            {
              temp=ptr[j];
             ptr[j]=ptr[i];
             ptr[i]= temp;
            }

        }
    }
    charater_string(n,ptr);
}

void First_word_length(int n,char*ptr[ ])
{
        int i,j;
    char *temp;
    for(i=0;i<n-1;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if((string_in(ptr[i])-string_in(ptr[j]))>0)
            {
             temp=ptr[j];
             ptr[j]=ptr[i];
             ptr[i]=temp;
            }

        }
    }
    charater_string(n,ptr);
}

void Quit()
{
    exit(1);
}
int string_in(char *ptr)
 {     
        int i=0 ;
       while(*ptr)
       { 
        if(*ptr==‘ ‘)
        return i;
         i++;
         *ptr++;
       } 
 }

通过函数调用对字符串数组进行各种排序

原文:http://blog.csdn.net/syl100252/article/details/45621987

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!