美文网首页
C 笔记五 字符计数

C 笔记五 字符计数

作者: 吃柠檬的鸮 | 来源:发表于2019-03-19 16:07 被阅读0次

编写程序,统计输入的字符数:

/* count.c */
#include <stdio.h>

int main() {
    long nc = 0;

    while (getchar() != EOF) {
        ++nc;
    }
  
    printf("%ld\n", nc);

    return 0;
}

while 循环体内执行计数操作:

++nc;          /* 语句 1 */

/* 等价于 */
nc = nc + 1;  /* 语句 2 */

语句 1 中的 “++” 称为自增运算符,相应的有自减运算符 (“--”),可作为前缀运算符(如 ++nc--nc),也可作为后缀运算符(如 nc--nc++)。相较于语句 2,语句 1 的形式更精炼,效率通常也比较高。

nc 的数据类型为 long,即长整型,long 的长度不小于 int,相应的 printf 语句的转换说明为 "%ld"。

/* 下面操作将引发编译器警告: */
/* warning: format '%d' expects argument of type 'int', */
/* but arguement 2 has type 'long int' */
printf("%d\n", nc);

可以用 for 循环语句来替代上面程序中的 while 循环:

#include <stdio.h>

int main() {
    long nc;

    for (nc = 0; getchar() != EOF; ++nc) 
        ;
    printf("%ld\n", nc);

    return 0;
}

C 语言要求 for 循环语句必须要有一个循环体,因此这里用单独的分号代替,单独的分号称为空语句。

编译运行结果:

  1. 因为这里换行了,所以是 14。
Hello, world!
14
  1. 不换行的结果是 13。
Hello, world!13
  1. 不输入任何字符,结果为 0。
0

相关文章

网友评论

      本文标题:C 笔记五 字符计数

      本文链接:https://www.haomeiwen.com/subject/xgzgmqtx.html