当前位置:文档之家› 用c语言对文本编辑

用c语言对文本编辑


return count; }
int Count_AW(LINE * &head) {
LINE *p=head; int count=0;
//统计文章的总字数 //保存链表的首地址 //总字母数
do {
count+=strlen(p->data);
6
} 计包含"空格的长度!"
while((p=p->next)!=NULL);
//统计字母数 //统计数字数 //统计空格数 //统计文章的总字数 //统计指定的字符串在文章中出现的次数 //删除指定的字符串
main() {
LINE *head; int t,a,b; char sch[20]; char tmp_sch[20]; a=1;
//文章的首结点
while(a) {
文本编辑
一、 功能要求
输入一页文字,程序可以统计出文字、数字、空格的个数。静态存储一页文章,每行最多不超过 80 个字
符,共 N 行;
1) 分别统计出其中英文字母数和空格数及整篇文章总字数;
2) 统计某一字符串在文章中出现的次数,并输出该次数使用线性表,分别用几个子函数实现相应的功能;输入数据的形式和范围:可以输入大写、
OutPutTxt(head);
//向屏幕输出文章
printf("\n-----------------------------------\n");
break;
}
case 6: { printf("\n--Thanks for using--\n"); return 0; }
} } }
void CreateTXT(LINE * &head) {
5
do
{
int Len=strlen(p->data);
//当前 data 里的数据元素的个数
for(i=0;i<Len;i++)
if((p->data[i]>=65 && p->data[i]<=90)||(p->data[i]>=97 && p->data[i]<=122))
count++;
//计算空格数
2. 程序执行的命令包括: 文章编辑
3. 测试数据 输入字符串:abc zmj cmd 统计得:全部字母数:9
数字个数:0 空格数:2 文章总字数:11 字符传”zmj”出现次数:1 若删去字符串“d”得到新字符串:abc zmj cm
三、 概要设计
为实现上述程序功能,应采用定长顺序串的存储结构 1、抽象数据类型定义为: ADT List {
//保存当前行的总字符数 //待统计字符串的长度
do {
len1=strlen(p->data);
//遍历链表
void tongji(LINE * &head) {
int a,b,c,d;
//统计,分四行输出统计结果
printf("文章统计信息如下:\n");
a=Count_ZM(head); printf("\n 全部字母数:%d",a);
c=Count_SZ(head); printf("\n 数字个数:%d",c);
p->data[strlen(tmp)-1]='\0';
break;
}
}
p->next=NULL; head=head->next;
//最后一个指针为空
}
void OutPutTxt(LINE * &head) {
LINE *p=head;
//向屏幕输出 文章
do {
cout<<p->data<<endl; }while((p=p->next)!=NULL); }
//统计空格数
do {
int Len=strlen(p->data); for(i=0;i<Len;i++) if(p->data[i]==32)
count++; }while((p=p->next)!=NULL);
//计算当前 data 里的数据元素的个数
//空格的 ASCIC 码值为 32 //计算空格数 //遍历链表
小写的英文字母、任何数字及标点符号。
2.输出形式:
1) 分行输出用户输入的各行字符;
2) 分 4 行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"
3) 输出删除某一字符串后的文章;
二、 需求分析
1. 程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户在键盘上 输入程序中规定的运算命令;相应的输入数据和运算结果显示在其后。
//计算当前行内的字符数!除'\0'结束符外!注意,该统 //遍历链表
return count; }
int Find_Word(LINE * &head,char *sch)
{
//统计指定字符串在文章中出现的次数
LINE *p=head; int count=0; int h=0; int len1=0; int len2=strlen(sch); int i,j,k;
case 5:
{
printf("-----------------------------------\n");
printf("\n 请输入要删除的某一字符串:\n");
scanf("%s",tmp_sch);
Del_Word(head,tmp_sch); //删除指定字符
printf("\n 删除后的文章为:");
case 3: {
3
printf("-----------------------------------\n"); tongji(head); printf("\n-----------------------------------\n"); break; }
case 4: { printf("-----------------------------------\n"); printf("请输入要统计的 字符串\n"); scanf("%s",sch); b=Find_Word(head,sch); printf("\n 出现的次数为:%d",b); printf("\n-----------------------------------\n"); break; }
printf("************************************\n"); printf("文本编辑工具\n"); printf("1.输入文本\n"); printf("2.输出输入的文本\n"); printf("3.文本的统计\n"); printf("4.指定字符串统计\n"); printf("5.指定字符串删除\n"); printf("6.退出 \n"); printf("************************************\n"); scanf("%d",&t);
char tmp[80]; LINE *p=new LINE; head=p;
//首先为链表建立一个附加表头结点 //将 p 付给表头指针
printf("\n 请输入文章,每行不超过 80 个字符:\n"); printf("输入单个 # 则结束输入\n");
while(1)
{
gets(tmp);
//使用 C 的输入函数输入字符串
1
操作结果:统计数字数 Count_KG(LINE * &head)
初始条件:LINE 已存在。 操作结果:统计空格数 Count_AW(LINE * &head) 初始条件:LINE 已存在。 操作结果:统计文章的总字数 Find_Word(LINE * &head,char *sch) 初始条件:LINE 已存在。 操作结果:统计指定的字符串在文章中出现的次数 Del_Word(LINE * &head,char *sch) 初始条件:LINE 已存在。 操作结果:删除指定的字符串
switch(t) {
case 1: { printf("-----------------------------------\n"); CreateTXT(head); printf("\n-----------------------------------\n"); break; }
case 2: { printf("-----------------------------------\n"); OutPutTxt(head); printf("\n-----------------------------------\n"); break; }
b=Count_KG(head); printf("\n 空格个数: %d",b);
d=Count_AW(head); printf("\n 文章总字数: %d",d);
相关主题