降順文字単位で: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)。
}