| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 421 人关注过本帖
标题:这段 不理解了。
只看楼主 加入收藏
zc442200
Rank: 1
等 级:新手上路
帖 子:11
专家分:5
注 册:2011-3-16
结帖率:75%
收藏
已结贴  问题点数:15 回复次数:4 
这段 不理解了。
C primer plus  上面的例题
一个简单的统计 单词数 行数 字符数

#include<stdio.h>
#include<ctype.h>
#define STOP '|'
int main(void)
{
    char c;                                        //读入 字符
    char prev;                                    //前一个字符   
    long n_chars=0l;                            //字符数
    long n_lines=0;                                //行数
    long n_words=0;                                //单词数
    int p_lines=0;                                //不完整的行数
    int inword=0;

    printf("enter text to be analyzed(| to quit ) : \n");
    prev='\n';
    while((c=getchar())!=STOP)
    {
        n_chars++;
        if(c=='\n')
            n_lines++;
        if(!isspace(c)&&inword==0)
        {
            inword=1;
            n_words++;
        }
        if(isspace(c)&&inword==1)
        
            inword=0;
            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);
        return 0;
}

红色部分 不懂了。 大家 帮忙翻译翻译。
搜索更多相关主题的帖子: 统计 
2011-04-06 17:50
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:5 
isspace():如果参数是空格类字符(即:单空格,制表符,垂直制表符,满页符,回车符,新行符),函数返回非零值,否则返回零值。

if(!isspace(c)&&inword==0)//如果不是空字符
        {
            inword=1;
            n_words++;
        }
if(isspace(c)&&inword==1)//如果是空字符
        
            inword=0;
            prev=c;

                                         
===========深入<----------------->浅出============
2011-04-06 19:05
wolonga123
Rank: 2
等 级:论坛游民
帖 子:25
专家分:35
注 册:2010-9-16
收藏
得分:5 
if(!isspace(c)&&inword==0)//如果是空字符
         {
             inword=1;
             n_words++;
         }
 if(isspace(c)&&inword==1)//如果不是空字符
         
             inword=0;
             prev=c;
2楼好像弄反了吧
2011-04-06 20:01
zc442200
Rank: 1
等 级:新手上路
帖 子:11
专家分:5
注 册:2011-3-16
收藏
得分:0 
嗯 二楼是对的。
2011-04-06 20:03
我是传奇
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:88
专家分:109
注 册:2011-3-21
收藏
得分:5 
if(!isspace(c)&&inword==0)//如果不是空字符
2楼是对的,
!isspace
2011-04-06 22:34
快速回复:这段 不理解了。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016908 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved