当前位置:首页>>女人>>女性保健

文本編輯器(簡單文本編輯器源代碼)

本文的示例共享了用於c語言實現簡單文本編輯器的具體代碼。 具體內容如下

期待有三個功能。 首先,可以在指定的行中輸入字符串。 第二,刪除指定行的字符串;第三,顯示編輯器的行數和內容。

我們用區塊鏈結構實現本程序。 “塊”的意思是每個塊都可以包含數字字符,“鏈”的意思是塊和塊之間通過鏈表結構連接。

ide : code :3360 blocks 17.12

Compiler : GNU GCC Compiler

/*通過區塊鏈結構實現簡單的文本編輯器

*

#包含

#包含

#define MAX 100

void Init (; //初始化編輯器

void input (; //輸入指定的行,#號結束

void Delline (; //刪除指定的行

語音列表(; //顯示文本編輯器的內容

int Menu (; //列出並選擇選擇菜單

//定義存儲字符串的節點、區塊鏈結構

類型定義結構節點{

char data[50];

結構節點*下一步;

}strnode;

//為每個行首節點定義

類型結構頭{

Int編號器; //行號

int length; //字符串長度

strnode * next;

}headnode;

//定義有100行

頭節點頭[ max ];

//函數Init ) )實現每個行首節點的初始化

void Init ()。

int i;

for(I=0; I

Head[i].length=0;

}

}

//函數Menu ) )實現選擇菜單

int Menu ()。

int i;

i=0;

printf--------\n ';

printf(1.input(n );

printf(2.delete(n ) );

printf(3.list(n );

printf(4.exit(n );

printf--------\n ';

wile(I=0||I4 ) {

printf(pleasechoose(n );

掃描(' % d ',I );

}

返回I;

}

//函數input ),在指定的行中輸入字符串

Void輸入(}

strnode * p;

int i,j,LineNum;

char ch;

wile(1) {

j=-1;

printf (inputthenumberofline (0~ 100 )、101-exit:(n );

掃描(' % d ',LineNum ); //輸入要寫入的行號

if(Linenum0|||Linenum=max ) {

返回;

}

printf(pleaseinput,#-end\n );

i=LineNum;

Head[i].number=LineNum;

head[I].next=(strnode* ) malloc ) sizeof ) strnode );

p=Head[i].next;

p-next=空值;

ch=getchar (;

威爾(ch!='# ' ) {

j;

如果if(j=50 )//字符串的長度超過50,則必須分配另一個節點空間

p-next=(strnode* ) malloc ) sizeof (str node );

p-next-next=空;

p=p-next; //p指向新分配的節點

}

p-data[jP]=ch; //將輸入的文字放入data

ch=getchar (;

}

Head[i].length=j 1; //行的長度,以字符為單位

}

}

//函數Delline ) )實現指定行的刪除

void Delline () }

strnode * p,*q;

int i,LineNum;

wile(1) {

printf (inputthenumberoflinewhichdoyouwanttodelete (0至100 ),101-exit:(n ) );

掃描(' % d ',LineNum ); //輸入要刪除的行號

if(Linenum0|||Linenum=max ) {

返回;

}

i=LineNum;

p=Head[i].next;

if(head(I ).length0) ) )。

while(p!=空) {

q=p-next;

free(p;

p=q;

}

Head[i].length=0;

Head[i].number=0;

}

}

}

//函數List ) )在畫麵上顯示輸入的內容

voidlist(} ()

strnode *p;

int i,j,m,n;

for(I=0; I

if(head(I ).length0) ) )。

printf(line%d ),Head[i].number );

n=Head[i].length;

m=1;

p=Head[i].next;

for(j=0; Jj

以if(j=50*m )//50為基準,超過一個時指向下一個節點

p=p-next;

m; //節點數

}else{

printf('%c ',p-data[jP] ); //輸出節點內的內容

}

}

printf((n );

}

}

printf((n );

}

int main () )

{

int sel;

Init (; //初始化編輯器

wile(1) {

sel=Menu (;

選擇sitch(sel )//輸入的數字

case 1:

input (;

布雷克;

case 2:

戴爾line (;

布雷克;

case 3:

List (;

布雷克;

case 4:

退出(0;

}

}

返回0;

}

測試結果如下。

希望以上是正文的全部內容,對大家的學習有幫助。 另外,我希望你支持很多編劇。


  • 关注微信

猜你喜欢

推荐排行

  • 醬酒“斷臂求生”:從仙潭“賣身”疑雲透析行業變局與資本暗戰
  • darlie(darlie是什麽牌子的杯子)
  • 芭田股份:公司肥料產品目前沒有直接出口收入
  • 眼鏡哥哥(灌籃高手台詞)