C根据排序字符串

Posted 逍的遥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C根据排序字符串相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
#include<string.h>
#include <stdlib.h>
#define STR_LEN_MAX 100

char **ppcStringArry = NULL;
int num = 0;

void OutPutTest1();
void OutPutTest2();
/* 字符串数组输出函数*/
void OutPut()
{
    int i = 0 ;
    for (; i < num; i++)
    {
        if (NULL != ppcStringArry[i])
        {
            //free(ppcStringArry[i]);
        }
        printf("index is %d, string is %s.\r\n", i, ppcStringArry[i]);
    }
    printf("\r\n");
    printf("%s\r\n", "----------------------------------");
}
/* 字符串数组排序输出函数*/
void SortOutPut()
{
    int m = 0;
    int n = 0;
    char * temp = NULL;
    for (m = 0; m < num -1; m++)
    {
        for (n = m + 1; n < num; n++)
        {
            if (strcmp(ppcStringArry[m], ppcStringArry[n]) > 0)
            {
                temp = ppcStringArry[m];
                ppcStringArry[m] = ppcStringArry[n];
                ppcStringArry[n] = temp;
            }
        }
    }
    OutPut();

}

int main()
{
    //OutPutTest1();
    OutPutTest2();
}
/* 使用fgets函数*/
void OutPutTest1()
{
    char acDate[STR_LEN_MAX] = {0};
    FILE * pFile;
    pFile = fopen("F://C/1.txt", "ab+");
    num = 0;
    ppcStringArry = (char**)malloc(STR_LEN_MAX * sizeof(char*));
    while(NULL != fgets(acDate, STR_LEN_MAX, pFile))
    {
        ppcStringArry[num] = (char*)malloc(STR_LEN_MAX);
        memset(ppcStringArry[num], 0, STR_LEN_MAX);

        memcpy(ppcStringArry[num], acDate, strlen(acDate)+1);
        memset(acDate, 0, sizeof(acDate));
        num++;

    }
    SortOutPut();
}
/* 使用fscanf函数*/
void OutPutTest2()
{
    //char acDate[STR_LEN_MAX] = {0};
    FILE * pFile;
    pFile = fopen("F://C/1.txt", "ab+");
    int ret = 0;
    num = 0;
    ppcStringArry = (char**)malloc(STR_LEN_MAX * sizeof(char*));
    ppcStringArry[num] = (char*)malloc(STR_LEN_MAX);
    memset(ppcStringArry[num], 0, STR_LEN_MAX);
    ret = fscanf(pFile, "%s", ppcStringArry[num]);

    while( EOF != ret)
    {
        num++;
        ppcStringArry[num] = (char*)malloc(STR_LEN_MAX);
        memset(ppcStringArry[num], 0, STR_LEN_MAX);
        ret = fscanf(pFile, "%s", ppcStringArry[num]);
    }
    SortOutPut();
}

 

以上是关于C根据排序字符串的主要内容,如果未能解决你的问题,请参考以下文章

2016.06.06 周一 C语言 将字符串根据字符的ASCII码从大到小排序并打印出字符串中的字符类型的总数

计算排序字符串的算法(自制“uniq -c”)

C#根据多个(26 + 3)类别以特定顺序对对象列表进行排序(LINQ,if else,switch case)[关闭]

C语言如何在键盘中输入一个数字字符串并进行排序

一百万个结构数组,根据其中一项值排序,用双链表还是数组排序效率更好,请给出最快C或C++算法代码。

PHP 代码片段