空格统计
空格统计
首先,做这个程序的目的,是因为软件工程要求实例Jackson
块图的实现,要求如下:
1)设计程序统计每个记录中空格字符的个数,输出数据的格式是,每读入一个记录(字符串)之后,另起一行打印出这个字符串及其空格数;
2)最后打印出文件中空格的总个数。
下面列出代码,请参考,如需要求有差异,可自由修改代码以达成目标(此程序经vs测试通过)
#define _CRT_SECURE_NO_WARNINGS //解决了在vs中使用fopen()函数报错的问题
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h> //调用windows.h头文件实现Sleep()函数,以得到期望的休眠,使得程序不会突兀
#define MAX_FILED 128 //根据估计文字不超过128字节,所以设定为128
int main()
{
char buf[MAX_FILED]; //创造数组用来记录文本
int count = 0; //记录每段文本的空格数
int wholecount = 0; //记录总空格数
int len; //记录每行字符数
char s1[] = "Record 1:How many stages are there in the traditional software development model?";
char s2[] = "Record 2:After entering the room,walk to the person sitting nearest to you and greet him/her with a “high five”.";
char s3[] = "Record 3:What are encapsulated into an object?";
char s4[] = "Record 4:What diagram is the following diagram? Simply describe the meaning of it.";
//使用fopen()函数写入txt文件中的文本
FILE* fpWrite = fopen("Document.txt", "w");
if (fpWrite == NULL)
{
return 0;
}
fprintf(fpWrite, "%s\n", s1);
fprintf(fpWrite, "%s\n", s2);
fprintf(fpWrite, "%s\n", s3);
fprintf(fpWrite, "%s\n", s4);
fclose(fpWrite);
//使用fopen()函数读取txt文件中的文本
FILE* Readtxt = fopen("Document.txt", "r"); //"r" 以只读方式打开文件,该文件必须存在 | 此文件必须存在于程序根目录下否则无法运行
if (Readtxt == NULL)
{
return 0;
}
printf("正在载入程序,统计中请稍等......\n\n");
Sleep(5000); //调用Sleep()函数休眠五秒
while (fgets(buf, MAX_FILED, Readtxt) != NULL) //fgets函数功能为从指定的流中读取数据,每次读取一行(配合fopen()使用是实现逐行读取)
{
len = strlen(buf);
for (int i = 1; i <= len; i++)
if (buf[i] == 32) //判定空格,即空格ASCII码为32
count++;
wholecount += count;
buf[len - 1] = '\0'; //通过判断空字符的结尾来确定换行
printf("%s\n", buf);
printf("总字数是:%d\n空格字符数是:%d\n", len - 1, count);
printf("正在计算下一段句子的空格数,请稍等......\n");
Sleep(2000); ////调用Sleep()函数休眠两秒
printf("\n");
count = 0;
}
printf("总的空格数为:%d\n", wholecount);
printf("文本空格数已全部统计完成,请单击Enter退出程序,谢谢使用此程序^_^\n");
fclose(Readtxt);
system("pause");
return 0;
}
此外还有Visio绘制的程序流程图
希望能在读写C语言读写方面对你有所启发和帮助!
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!