文本编辑器 C语言程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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
3·详细设计
3·1流程图
3.2程序解析
#include
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;