文章编辑简易c语言,文章编辑c语言.doc

文章编辑

功能:输入一页文字,程序可以统计出文字、数字、空格的个数。

静态存储一页文章,每行最多不超过80个字符,共N行;

要求:(1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。

存储结构使用线性表,分别用几个子函数实现相应的功能;

输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。

输出形式:(1)分行输出用户输入的各行字符;(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"(3)输出删除某一字符串后的文章;

一.程序

#include

#include

#include

struct ca{

char c;

ca *next;

};

void InitList(ca *L)

{//输入以“#”结束的文章

cout<

while((L->c=getchar())!='#'){

L->next=new ca;

L=L->next;

}

L->next=NULL;

}

void StrNo(ca *L){//统计某以字符串在文章中出现的次数

int n=0;

char s[80],*q;

ca *p;

cout<

cin>>s;

while(L->next){

for(p=L,q=s;*q!='\0'&&p->next;p=p->next,q++)

if(p->c!=*q)break;

if(*q=='\0')n++;

L=L->next;

}

cout<

}

ca *DelStr(ca *L){//删除某一子串

ca *H=L;

char s[80],*q;

ca *p;

cout<

cin>>s;

if(H->c==*s){

for(p=H->next,q=s+1;*q!='\0'&&p->next;p=p->next,q++)

if(p->c!=*q)break;

if(*q=='\0')H=p;

}

while(L->next){

for(p=L->next,q=s;*q!='\0'&&p->next;p=p->next,q++)

if(p->c!=*q)break;

if(*q=='\0')L->next=p;

else L=L->next;

}

return H;

}

void fenhang(ca *L){//分行输出用户输入的各行字符

while(L->next){

cout<c;

L=L->next;

}

cout<

}

void tongji(ca *L,int &p1,int &p2,int &p3,int &n){//统计中英文字母和空格数以及整篇文章总数

n=p1=p2=p3=0;

for( ;L->next;L=L->next,n++)

if(isalpha(L->c))p1++;

else if(isdigit(L->c))p2++;

else if(L->c==' ')p3++;

else if(L->c=='\n')n--;

cout<

cout<

cout<

cout<

}

void main(){

ca *L=new ca;

int p1,p2,p3,n,c;

InitList(L);

do{

cout<

"1;统计中英文字母和空格数以及整篇文章总字数\n"

"2:统计某一字符串在文章中出现次数\n"

"3:删除某一子串\n"

"4:分行输出用户输入的各行字符\n";

cin>>c;

switch(c){

case 1:tongji(L,p1,p2,p3,n);break;

case 2:StrNo(L);break;

case 3:DelStr(L);

case 4:fenhang(L);

}

}while(c);

}

二、调试分析:

1. 测试数据及结果

(1)先输入一串字符、空格和数字,再回车。接着输入1回车,统计中英文字母和空格以及整篇文章总字数

(2)再输入2回车,接着输入所要查的字符串love回车

(3)再输入3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值