1
(1)从键盘输入一个文本(ASC2码文件),并将该文本输出到D盘根目录下的abc0.txt文件中,再关闭该文件,以Ctrl+Z(即eof)结束。
(2)打开D盘根目录下的abc0.txt文件,将单词之间两个以上的空格都压缩为一个空格,输出处理后的文本,同时将处理后的文本输出到D盘根目录下的abc1.txt文件中,并关闭该文件。
(3)打开D盘根目录下的abc1.txt文件,统计文件中字符的个数,单词的个数,以及句子的个数,并输出统计结果。
#include <stdio.h>
#include <stdlib.h>
int main()
{
//1问
char c;
char c_before;
FILE* fp_abc0 = fopen("D:\\abc0.txt","w");
if(fp_abc0==NULL)
{
puts("open file fail.");
return 0;
}
while((c=getchar())!=EOF)
{
fputc(c,fp_abc0);
}
fclose(fp_abc0);
puts("input success!");
puts("Mission 1 complete!");
//2问
fp_abc0 = fopen("D:\\abc0.txt","r");
FILE* fp_abc1 = fopen("d:\\abc1.txt","w");
if(fp_abc0==NULL)
{
puts("open file fail.");
return 0;
}
if(fp_abc1==NULL)
{
puts("open file fail.");
return 0;
}
c=c_before=NULL;
while((c=fgetc(fp_abc0))!=EOF)
{
if(c==' ')
{
if(c_before==' ') continue;
else fputc(c,fp_abc1);
}
else
fputc(c,fp_abc1);
c_before=c;
}
fclose(fp_abc0);
fclose(fp_abc1);
puts("Mission 2 complete!");
//3问
fp_abc1=fopen("D:\\abc1.txt","r");
if(fp_abc1==NULL)
{
puts("open file fail.");
return 0;
}
int char_counter=0;
int word_counter=0;
int sentence_counter=0;
c=NULL;
while((c=fgetc(fp_abc1))!=EOF)
{
char_counter++;
putchar(c);
if(c==' ') word_counter++;
if(c=='.') sentence_counter++;
}
word_counter++;
fclose(fp_abc1);
printf("字符个数:%d\n单词个数%d\n句子个数%d\n",char_counter,word_counter,sentence_counter);
return 0;
}