首页 > 编程语言 >C统计单词程序

C统计单词程序

时间:2023-05-04 16:48:40浏览次数:29  
标签:字符 inword int 程序 lines 单词 prev 统计

C统计单词程序

需求描述

  1. 读取并报告单词的数量
  2. 计算字符数和行数

识别单词的处理

把一个单词定义为不含空白的字符序列

既:没有空格、制表符、换行符

/**
 * @Author: Lucifer
 * @Date: 4/30/2023, 2:12:10 PM
 * @LastEditors: Lucifer
 * @LastEditTime: 4/30/2023, 2:12:10 PM
 * Description: 识别单词的程序
 * Copyright: Copyright (©)}) 2023 Your Name. All rights reserved.
 */
# include<stdio.h>
# include<ctype.h>
# include<stdbool.h>
# define STOP '|'

int main(void)
{
    char c; // 读入字符
    char prev; // 读入的前一个字符
    long n_chars = 0L; // 字符数
    int n_lines = 0; // 行数
    int n_words = 0; // 单词数
    int p_lines = 0; // 不完整的行数
    bool inword = false; // 如果字符c在单词中,则inword = true

    printf("Enter text to be analyzed( | to terminate): \n");
    prev = '\n'; // 识别完整的行
    while ((c = getchar()) != STOP)
    {
        n_chars++; // 统计字符
        if (c == '\n')
            n_lines++; // 统计行
        if (!isspace(c) && !inword)
        {
            inword = true; // 开始一个新的单词
            n_words++; // 统计单词
        }
        if (isspace(c) && inword)
            inword = false; // 达到单词末尾
        prev = c; // 保存字符的值
    }
    
    if (prev != '\n');
        p_lines = 1;
    printf("Characters = %ld, words = %d, lines = %d,", n_chars, n_words, n_lines);
    printf("partial lines = %d\n", p_lines);

    getchar();

    getchar();

    return 0;
}

标签:字符,inword,int,程序,lines,单词,prev,统计
From: https://www.cnblogs.com/JunkingBoy/p/17371686.html

相关文章

  • C菜单响应程序
    C菜单响应程序需求:提供一个响应程序用户输入正确得到响应用户输入错误重新输入注意:混合字符和数值输入可以识别处理用户输入Enter键示例代码:/***@Author:Lucifer*@Date:5/1/2023,2:43:11PM*@LastEditors:Lucifer*@LastEditTime:5/1/2023,2:43:......
  • ch583/ch582/ch573/ch571 central(主机)程序
    本程序是在CH582m上运行的,一、主从连接主机这里可以根据从机的MAC地址进行连接。staticuint8_tPeerAddrDef[B_ADDR_LEN]={0x02,0x02,0x03,0xE4,0xC2,0x84};一般从机在使用的时候不做其他配置时使用的是芯片本身的MAC地址,可以通过修改从机端对应的MAC地址和主机进行连......
  • 聊一聊 GDB 调试程序时的几个实用命令
    一:背景1.讲故事用惯了宇宙第一的VisualStudio再用其他的开发工具还是有一点不习惯,不习惯在于想用的命令或者面板找不到,总的来说还是各有千秋吧,今天我们来聊一下几个在调试中比较实用的命令:查看内存硬件断点虚拟内存布局二:命令解读1.查看内存相信大家都知道Visual......
  • 微信小程序打开腾讯会议小程序并入会
    wx.navigateToMiniProgram({appId:'wx33fd6cdc62520063',//要跳转的微信小程序appidpath:'pages/sub-preMeeting/join-meeting/join-meeting?scene=m%3Dxxxxxxxxx',//要跳转到的页面路径success(){},fail(){}});其中xxxxxxxxx......
  • netty第一个程序,简单聊天程序
    netty第一个程序,简单聊天程序。server端和client端分别定义一个消息处理类ChatServerHandlerpublicclassChatServerHandlerextendsSimpleChannelInboundHandler<String>{privatestaticChannelGroupchannelGroup=newDefaultChannelGroup(GlobalEventExecutor.I......
  • C++黑马程序员——P251-254. 常用排序算法 sort,random_shuffle,merge,reverse
    P251.常用排序算法——sortP252....——random_shuffleP253....——mergeP254....——reverseP251.sort  1#include<iostream>2#include<vector>3#include<algorithm>4#include<functional>//用greater5usingnamespacest......
  • 2-BS结构的系统通信原理(没有涉及到Java小程序)
    1.WEB系统的访问过程第一步:打开浏览器第二步:找到地址栏第三步:输入一个合法的网址第四步:回车第五步:在浏览器上会展示响应的结果。2.关于域名:https://www.baidu.com/(网址)www.baidu.com是一个域名在浏览器地址栏上输入域名,回车之后,域名解析器会将域名解析出来一个具......
  • ekf 扩展卡尔曼滤波定位 qt仿真程序
    ekf扩展卡尔曼滤波定位qt仿真程序粒子滤波定位YID:6830622857944996......
  • 径向基RBF神经网络的电力负荷数据回归预测matlab 程序代码,数据EXCEL格式,直接运行。
    径向基RBF神经网络的电力负荷数据回归预测matlab程序代码,数据EXCEL格式,直接运行。可更换自己数据,上手简单。ID:7426632657061937......
  • matlab程序制定,综合能源系统优化调度,综合需求响应的应用,碳交易机制。
    matlab程序制定,综合能源系统优化调度,综合需求响应的应用,碳交易机制。ID:34100671575346700......