文本编辑器 C语言程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

文本编辑器

C语言课程设计报告

目录

1.设计目的及要求

1.1设计目的

1.2设计要求

1.3题目解析

2.总体设计

3.详细设计

3.1流程图

3.2程序解析

4.调试分析

5.设计总结

6.心得体会

7.答辩记录

8.教师意见

1.设计目的及要求

1·1设计目的

编一个程序对一个指定的文本文件进行处理,要具有统计功能,编辑功能以及查找功能等。

1·2设计要求

A)读取一个指定文本文件,每行以回车结束,显示在屏幕上

B)统计功能:统计字符数,单词数,行数,并输出

C)编辑功能

1)将所有小写字母改成大写字母,将新的文本输出;

2)将所有大写字母改成小写字母,将新的文本输出;

3)输入被替换的字符串,及替换的内容,将新的文本输出;

D)查找功能

1)输入一个字符,在文本中查找是否存在该字符,若存在,统计

其个数,并将信息输出;

2)输入一个单词,在文本中查找是否存在该字符,若存在,统计

其个数,并将信息输出;

1.3题目解析

课程的第一要求就是读取一个指定的文本文件,而且之后还有对字符串,字符数组的运用,所以要使用文本函数将文本中的字符输入到字符数组中。完成第一步之后就是对字符串的处理了。

2·总体设计

因为是对指定的文本文件进行处理,所以需要首先运用fscanf函数将文本文件中的字符读入到指定的数组中,然后才能进行处理。

对于字符串的处理,首先在头文件中使用#include,因为下文要使用有关字符串的函数。具体的要用到strlen函数。

3·详细设计

3·1流程图

3.2程序解析

#include #include void main() {

char file[30]="\0",m[15]="\0";//file 是文件地址,m 是下面case 1里用的

int c,n,s;//c 用于switch ,n ,s 是case 1里用的 printf("请输入源文件地址:"); scanf("%s",file);

char a[2000]="\0",b[2000]="\0";

FILE *fp=fopen(file,"r");//这是打开文件并把文件地址指针给fp if(!fp)//若是没能打开则运行 { printf("源文件不存在或地址输入错误!\n");

} int i=0;

fscanf(fp,"%c",&a[i]);//读取第一个字符给a[0] while(a[i++]) //读取字符并输出 {

fscanf(fp,"%c",&a[i]);

注释:

fscanf 函数用于从磁盘文件中读入数据,送到程序中进行处理,其一般表达形式为:

fscanf (文件指针,格式字符串,输入参数列表)

与fprintf 函数类似,fscanf 函数调用时同样返回int 型数值,其返回值有两种: 函数调用成功时:返回时间输入的字符数 函数调用失败时:返回EOF

printf("%c",a[i-1]);

}

i--;

int j=0,k=0;

for(;j

if(a[j]=='\40'||a[j]=='\n')

k++;

j=i-k;//i是总共字符的个数, k是空格与换行的个数

printf("\n此文本中有%d个字符,",j);

for(j=0,k=0;j

if((a[j]!='\40'&&a[j]!='\n')&&(a[j+1]=='\40'||a[j+1]=='\n'))

k++;

if(a[i-1]!='\40'&&a[i-1]!='\n') k++;//a[i-1]是最后一个字符得

判断一下最后一个是不是空格或换行若不是k就得再加一

printf("有%d个单词,",k);

for(j=0,k=1;j

if(a[j]=='\n')

k++;

do

{

printf("\n功能:统计单词或字符个数请输入1,小写变大写请输

入2,大写变小写请输入3,替换字符串请输入4,退出请输入5\n");

scanf("%d",&c);

FILE *fp;

int s1,s2,x,y,z;

char str1[20]="\0",str2[20]="\0";

switch(c)

{

case 1:

printf("请输入你要统计的单词或字符:");

scanf("%s",m);

s=strlen(m);

k=0;

for(j=0;j

{

n=0;

while(m[n]==a[j]&&n

if(n==s) k++,j--;

注释:

当m与a的字符数组,不仅对应的字符完全一样,而且长度还要一样,这样才可以统计出一个字符,k累加一。

}

printf("%s共有%d个\n",m,k);

break;

case 2:

printf("请输入转变后文件的保存路径:");

scanf("%s",file);

fp=fopen(file,"w");

注释:

fopen是c语言中文件打开的函数,该函数的声明在头文件stdio.h中,这里“w”是write的缩写,设置对文件“写”的权限。

printf("转变后的文本为:\0");

for(j=0;j

{

if('a'<=a[j]&&a[j]<='z')

b[j]=a[j]-32;

相关文档
最新文档