ReadDat関数()(80未満に文字列の長さ)は、文字列配列XXに達成格納されたデータ線20 in.datファイルから読み込みます。
その機能の関数である機能jsSortを()、準備してください:インデックスの文字列変数の単位で結果が再び文字列に分類に基づいて、彼らの昇順の奇数文字のASCII値でありますファイルにout.dat XX出力をもたらすための関数呼び出しの後XX列アレイ、WriteDat()。
たとえば、次のように位置01234567
ソース文字列ABCDEFGH
文字列を処理した後ahcfedgb
ソースファイルの一部がprog1.cに存在します。
メインメイン関数を()を変更しないでください、コンテンツデータは、機能ReadDat()関数と出力データWriteDat()のをお読みください。
書式#include <stdio.hに>
書式#include <string.hの>
書式#include <conio.h>
チャーXX [20] [80]。
空jsSort()
{INT I、J、K、技研。
CHAR CH; 以下のための式(I = 0、I <20; I ++)
{技研= STRLEN(XX [I])。
用(J = 1、J <技研-2、J = J + 2)
(; K <技研; K = K + 2、K = J + 2)のために
IF(XX [I] [J]> XX [I] [K]){CH = XX [I]、[J]、XX [I] [J] = XX [I] [K]、XX [I] [ K] = CH;}
}
}
無効メイン()
{
readDat();
jsSort();
writeDat();
}
readDat()
{FILE *において、
私は0を= int型。
char * P;
=のfopen(「R」、「in.dat」)。
一方、(I <20の&&関数fgets(XX [i]は、80で)!= NULL){
P = strchr(XX [i]が、 '\ n');
if§* P = 0;
I ++;
}
FCLOSE(IN)は、
}
writeDat()
{
FILE *アウト。
私はint型。
アウト=のfopen(「out.dat」、「W」)。
clrscr();
ための式(I = 0; iが<20; I ++){
printf( "%sの\ n"、XX [I])。
関数fprintf(OUT、 "%sの\ n"、XX [I])。
}
fcloseを(アウト)。
}