?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

long8國際手機版:漢字行編輯程序

?

我寫了一個漢字行編輯法度榜樣,請各位多多指教,找出本法度榜樣的不夠,以前進本法度榜樣的功能,!

法度榜樣如下:

#include "stdio.h"

#include "stdlib.h"

#include "string.h"

#include "conio.h"

#define len 4

#define LINESIZE 80/*每行長度為80個字符*/

strUCt TEXT

{

struct TEXT *prior;

char str[LINESIZE+1];/*包括 '\0' 在內,設置長度為LINESIZE+1*/

struct TEXT *next;

};

struct TEXT *TPTR,*BPTR,*KPTR,*QPTR,*SPTR,*YPTR,*XPTR,*FPTR;

struct TEXT *ptr,*work;

int CHG,ERR,CMP,IND,CTR,i,NUM;

char ch,BUF;

char IN[LINESIZE+1],NUMD[len],MAT[LINESIZE],REP[LINESIZE],temp[LINESIZE];

void main()/*#1 主要起調整感化*/

{

void IN99v();

void READ_LINE();

void INPUT();

void TOP();

void UP();

void NEXT();

void ENTER();

void LIST();

void DELETE();

void REPLACE();

void FIND();

void INSERT();

void COPY();

void STORE();

void WR99vE_LINE();

clrscr();

IN99v();

while(1)

{

if(IND==0)

printf("\n-");/*敕令提示符*/

READ_LINE();

i=0;

if(IND!=0)

INPUT();

else

{

ch=IN[0];

if(ch=='T'ch=='t')

TOP();

else if(ch=='U'ch=='u')

UP();

else if(ch=='N'ch=='n')

NEXT();

else if(ch=='E'ch=='e')

ENTER();

else if(ch=='L'ch=='l')

LIST();

else if(ch=='D'ch=='d')

DELETE();

else if(ch=='R'ch=='r')

REPlong8國際手機版LACE();

else if(ch=='F'ch=='f')

FIND();

else if(ch=='I'ch=='i')

INSERT();

else if(ch=='C'ch=='c')

COPY();

else if(ch=='S'ch=='s')

STORE();

else if(ch=='Q'ch=='q')

exit(0);

else

{

strcpy(IN,"?!\0");/*不精確的編輯敕令相應*/

WR99vE_LINE();

}

}

}

}

void IN99v()/*#2 初始化正文編輯法度榜樣*/

{

void WR99vE_LINE();

printf("\n________________________________________");

printf("\nprogram for edit");

printf("\nT:TOPU N:UP N N:NEXT");

printf("\nE:ENTER L N:LIST D N:DELETE ");

printf("\nR /STR1/STR2/ N:REPLACE F /SFTR1/:FIND ");

printf("\nC N:COPYS N:STOREI:INSERT");

printf("\nQ:QU99v-: the sing of ordelong8國際手機版r");

printf("\long8國際手機版n-----------------------------------------");

FPTR=(struct TEXT*)malloc(sizeof(struct TEXT));

FPTR->prior=0;

FPTR->next=0;

CMP=CHG=ERR=0;

IND=0;

BPTR=TPTR=0;/*無正文鏈*/

KPTR=QPTR=0;/*無事情鏈*/

strcpy(IN,"ED99v!\0");

WR99vE_LINE();

}

void READ_LINE()/*#3 從終端接管一行正文并且把它存到緩沖器IN中 */

{

i=0;

BUF=getchar();

while(i=LINESIZEBUF=='\n')

{

if(i==0)

IN[i++]='\n';

IN[i]='\0';/*存入字符串停止標志*/

}

fflush(stdin);

}

void WR99vE_LINE()/*#4 把IN中的內容輸出到終端*/

{

printf("\n%s",IN);

}

void INPUT()/*#5 從緩沖器IN取來一行正文放到正文文件中*/

{

void GO_ED99v();

void CONNECT();

void long8國際手機版INSERT_CHAIN();

void WR99vE_LINE();

ch=IN[0];

if(IND==1)/*尚未接管到正文*/

{

if(ch=='\n')

GO_ED99v();/*轉到編輯模式*/

else

{

if(FPTR==0)

{

strcpy(IN,"NOFlong8國際手機版REE!\0");

WR99vE_LINE();

}

else

{

ptr=FPTR;/*YPRT在此模塊內主要起鏈接串之用*/

XPTR=FPTR;

strcpy(XPTR->str,IN);

IND=2;

}

}

}

else

{

if(ch=='\n')/*空行,從自由鏈把正公牘到正文鏈并轉到編輯模式*/

{

CONNECT();

INSERT_CHAIN();

GO_ED99v();

}

else

{

XPTR->next=(struct TEXT*)malloc(sizeof(struct TEXT));

if(XPTR->next==0)

{

CONNECT();

INSERT_CHAIN();

strcpy(IN,"NOFREE!\0");

WR99vE_LINE();

GO_ED99v();/*內存空間不夠,自動轉到編輯模式*/

}

else

{

XPTR=XPTR->next;

XPTR->prior=ptr;

ptr=XPTR;

XPTR->next=0;

strcpy(XPTR->str,IN);

}

}

}

}

void GO_ED99v()/*#6轉到編輯模式*/

{

void WR99vE_LINE();

IND=0;

strcpy(IN,"ED99v!\0");

WR99vE_LINE();

}

void CONNECT()/*#7分離后,只需讓TPTR,BPTR指向自由鏈,然則要讓FPTR指向一個新的結點,否則將掉去指向*/

{

YPTR=FPTR;

FPTR=(struct TEXT*)malloc(sizeof(struct TEXT));

if(FPTR!=0)

{

FPTR->prior=0;

FPTR->next=0;

}

}

void INSERT_CHAIN()/*#8把新輸入的正文加到正文鏈中,緊接在當前行的后面。開始時YPTR指向輸入正文的第一行,*/

{/*XPTR指向著末一行。指針把原有的正文分成兩部分,分手為前半和后半。*/

if(BPTR==0)

{

if(TPTR==0)/*原本沒有正文鏈*/

{

TPTR=YPTR;/*使分離出的自由鏈的第一行徑新的正文鏈的第一行,自由鏈的著末一行徑新的正文鏈的著末一行*/

BPTR=XPTR;

}

else

{

XPTR->next=TPTR;

TPTR->prior=XPTR;

&nbs

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

河北十一选五开奖的 极速11选5 正宗四川麻将免费的 贵州十一选五走势图 日本av女优姓名大全 武汉一条龙微信交流群 河北快3 好运快3给你5000 无图 亚洲 欧美 偷拍 蛇和梯子 nba掘金vs湖人 西宁按摩馆 足球比分007 麻生希老师无码 mp4 九江股指期货配资 全民麻将下载 sm捆绑性交