C言語の文字の置換

機能ReadDat()XXで文字列の配列に堆積したファイルENG.INから英語の資料を、読ん達成するために、機能encryptCharを(ご用意ください)、与えられた代替によるアレイ内のすべての文字が置換されXX、位置に対応する配列にファイルにPS1.DAT XX出力をもたらすように)関数呼び出しWriteDat(後に残っX-X

代替的関係:F(P)= P * 11 MOD 256(pはより少ないまたは32に等しい単一の文字列のASCII値であり、F(p)が計算後に新しい文字のASCII値である)、もし計算されたF(P)値以上より130は、文字変わらず、そうでなければ、F(p)の代わりに文字に対応します。(注符号なし整数と中間変数こと)、元のデータファイルのフォーマットは、次のとおり、各列の幅が80文字未満です。
書式#include <stdio.hに>

書式#include <string.hの>

書式#include <conio.h>

書式#include <のctype.h>

unsigned char型のX-X [50] [80]。

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

int型ReadDat(無効)。

空WriteDat(無効)。

空encryptChar()

{

私は、jはint型。

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

(; J <strlenを(XX [I]); J ++ J = 0)のための

IF(XX [I] [J] * 11%256 <= 32 || XX [I] [J] * 11%256> 130)を続けます。

他のXX [I] [J] = XX [I] [J] * 11%256;

}

無効メイン()

{

clrscr();

(ReadDat()){のprintf( "開くことができませんENG.INデータファイル\ nは\ 007!")であれば、

リターン;

}

encryptChar();

WriteDat();

}

int型ReadDat(無効)

{

FILE * fpを。

私は0を= int型。

unsigned char型* P;

IF((FP =のfopen(「eng.in」、「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( "ps1.dat"、 "W")。

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

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

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

}

FCLOSE(FP)。

}

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

おすすめ

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