文章编辑源程序.doc_第1页
文章编辑源程序.doc_第2页
文章编辑源程序.doc_第3页
文章编辑源程序.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#include#include #include /*文本每行以字符串形式存储,行与行之间以链表存储*/typedef struct line char *data; struct line *next;LINE; /*创建一链表,同时向里面输入文本数据*/void Create(LINE * &head) printf (请输入一页文章,以Ctrl+E(E)为结尾(每行最多输入80字符!):n);LINE *p=new LINE; /*首先为链表 建立一个附加表头结点*/ head=p; /*将p付给 表头指针*/ char tmp100; while(1) gets(tmp); /*输入字符串!*/ if(strlen(tmp)80) printf(每行最多输入80字符); break; if(tmp0=5)break; /*如果发现输入 E,则退出输入*/ p=p-next=new LINE; p-data=new charstrlen(tmp)+1; /*为结点分配空间 */ strcpy(p-data,tmp); if(tmpstrlen(tmp)-1=5) /*除去最后一个控制符 E */ p-datastrlen(tmp)-1=0; break; p-next=NULL; /*最后的一个指针为空 */ head=head-next;/*统计字母数*/int CountLetter(LINE * &head) LINE *p=head; int count=0;do int Len=strlen(p-data); /*计算当前 data 里的数据元素的个数*/ for(int i=0;idatai=a&p-dataidatai=A&p-datainext)!=NULL); /*遍历 链表*/return count; /*返回文章的字母总数*/*统计数字数*/int CountNumber(LINE * &head) LINE *p=head; int count=0; do int Len=strlen(p-data); /*计算当前 data 里的数据元素的个数*/ for(int i=0;idatai=48 & p-datainext)!=NULL); /*遍历 链表*/ return count;/*统计空格数*/int CountSpace(LINE * &head) LINE *p=head; int count=0; do int Len=strlen(p-data); /*计算当前 data 里的数据元素的个数*/ for(int i=0;idatai=32)count+; /*计算空格数,空格ASCII码为32*/ while(p=p-next)!=NULL); /*遍历 链表*/ return count;/*统计文章的总字数*/int CountAll(LINE * &head) LINE *p=head; /*保存链表的首地址*/ int count=0; do /*计算总字符数*/ count+=strlen(p-data); while(p=p-next)!=NULL); /*遍历 链表*/ return count;/*统计str在文章中出现的次数*/int FindString(LINE * &head,char *str) LINE *p=head; int count=0; int h=0; int len1=0; /*保存当前行的总字符数*/ int len2=strlen(str); /*待统计字符串的长度*/ int i,j,k; do len1=strlen(p-data); /*当前行的字符数*/for(i=0;idatai=str0)k=0; for(j=0;jdatai+j=strj) k+;if(k=len2)count+;i=i+k-1; while(p=p-next)!=NULL); /*遍历 链表*/ return count;/*删除指定的字符串*/void delstringword(char *s,char *str) /* *s为输入的字符串,*str为将要删除的字符*/char *p=strstr(s,str); /*从字符串s中寻找str第一次出现的位置*/ char tmp80; int len=strlen(s); int i=len-strlen(p); int j=i+strlen(str); int count=0; for(int m=0;mi;m+)tmpcount+=sm; for(int n=j;ndata,str)!=NULL)delstringword(p-data,str);while(p=p-next)!=NULL); /*遍历 链表*/*向屏幕输出文章*/void OutPut(LINE * &head) LINE *p=head; do printf(%sn,p-data); while(p=p-next)!=NULL); /*遍历 链表*/void main() LINE *head; Create(head); printf(输入的文章为:n); OutPut(head); printf(n); printf(全部字母数:%d n,CountLetter(head); printf(数字个数:%d n,CountNumber(head); printf(空格个数: %d n,CountSpace(head); printf(文章总字数: %d n,CountAll(head); char str120,str220; printf(n); printf(请输入要统计的字符串:); scanf(%s,str1); printf(%s出现的次数为:%d n,str1,FindStr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论