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码从大到小排序并打印出字符串中的字符类型的总数
C#根据多个(26 + 3)类别以特定顺序对对象列表进行排序(LINQ,if else,switch case)[关闭]