C根據排序字符串
阿新 • • 發佈:2017-11-19
gets ppc 數組排序 字符串數組 cda num eof 輸出 oid
#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根據排序字符串