数据结构编程--文章编辑

来源:百度知道 编辑:UC知道 时间:2024/05/23 11:43:36
功能:输入一页文字,程序可以统计出文字、数字、空格的个数.
静态储存一页文章,每行最多不超过80个字符,共N行;要求(1)分别统计出其中英文字母和空格数以及整篇文章总字数;(2)统计某一字符串在文章中出现次数,并输出该次数;(3)删除某一子串,并将后面的字符前移.
存储结构使用线性表,分别用几个子函数实现相应的功能;
输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号.
输出形式:(1)分行输出用户输入的各行字符;(2)分4行输出”全部字母数”、”数字个数”、”空格个数”、”文章总字数”;(3)输出删除某一字符串后的文章.

#include<iostream.h>
#include<stdio.h>
#include<ctype.h>

struct ca {
char c;
ca *next;
};

void InitList(ca *L) {
cout<<"输入一页文字(以#结束): "<<endl;
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<<"字符串 "<<s<<" 出现 "<<n<<" 次\n";
}

ca *DelStr(ca *L) {
ca *H = L;
char s[80], *q;
ca *p;
cout<<"输入该子串: ";
cin>>