空格统计

空格统计

首先,做这个程序的目的,是因为软件工程要求实例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 协议 ,转载请注明出处!