1. 程式人生 > >C根據排序字符串

C根據排序字符串

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根據排序字符串