C言語の文字列のソート

降順文字単位で:IN.DATは、その機能の関数である機能SortCharDを()、ご用意くださいxxを文字列配列に格納されているファイルから、英語の資料を読んで達成するための機能ReadDat()ソートされた行XXの結果に基づいてソートされた順序は、ファイルにOUT2.DAT XX出力をもたらすように、関数呼び出しwriteDat(後の文字列配列)に再入力されます。
例:オリジナル:DAE、BFC
CCbbAAの
結果:FEDCBA

      bbCCAA

元のデータファイルのフォーマットは以下のとおりです。各列の幅は、句読点やスペースを含めて80文字未満、です。
書式#include <stdio.hに>

書式#include <string.hの>

書式#include <conio.h>

チャーXX [50] [80]。

int型MAXLINE = 0; / 記事の行の合計数 /

int型ReadDat(無効)。

空WriteDat(無効)。

空SortCharD(無効)

{INT I、J、K、技研。

CHAR CH;

用(; I <MAXLINE; iが0 = I ++)

{技研= STRLEN(XX [I])。

用(J = 0; J <技研-1; J ++)

(; K <技研、K ++、K = J + 1)のために

IF(XX [I] [J] <XX [I] [K])

{CH = XX [I] [J]。XX [I] [J] = XX [I] [K]。XX [I] [K] = CH;}

}

}

無効メイン()

{

clrscr();

IF(ReadDat()){

printf( "IN.DATデータファイルが開かれ、\ nは\ 007することはできません!");

リターン;

}

SortCharD();

WriteDat();

}

int型ReadDat(無効)

{

FILE * fpを。

私は0を= int型。

char * P;

IF((FP =のfopen(「IN.DAT」、「R」))== NULL)リターン1。

一方、(関数fgets(XX [I]、80、FP)!= NULL){

P = strchr(XX [i]が、 '\ n');

if§* P = 0;

I ++;

}

MAXLINE = I;

FCLOSE(FP)。

0を返します。

}

空WriteDat(無効)

{

FILE * fpを。

私はint型。

FP =のfopen(「OUT2.DAT」、「W」)。

用(; I <MAXLINE; iが0 = I ++){

printf( "%sの\ n"、XX [I])。

関数fprintf(FP、 "%sの\ n"、XX [I])。

}

FCLOSE(FP)。

}

公開された239元の記事 ウォンの賞賛3 ビュー3150

おすすめ

転載: blog.csdn.net/it_xiangqiang/article/details/105176877