K&R《C程序语言学习》p12:统计输入的字符数
2017-06-12 11:29
344 查看
代码:
#include <stdio.h>
int main(int argc, const char * argv[])
{
long nc;
nc = 0;
while(getchar() != EOF)
{
++nc;
}
printf("%ld\nc", nc);
return 0;
}
运行结果:
分析:
(1)EOF表示文件结束符。在unix/linux/mac系统中,另起一行并按下ctrl+d表示文件结束;在windowx系统中,另起一行并按下ctrl+z表示文件结束。
(2)++表示自加。nc++和++nc都是表示nc = nc + 1。
(3)循环:以输入ab,换行并按下ctrl+d为例:
最初nc=0。然后进入第一次循环,你按下a时,getchar()得到了a,不是结束符,++nc,nc此时变成了1。
第二次循环,你输入了b,不是结束符,执行++nc,nc此时变成了2。
第三次循环,你输入了换行\n,不是结束符,执行nc++,nc变成了3。
第四次循环,你输入了ctrl+d,等价于EOF,循环结束。nc++不被执行。跳出循环。打印出nc的值,就是3。
#include <stdio.h>
int main(int argc, const char * argv[])
{
long nc;
nc = 0;
while(getchar() != EOF)
{
++nc;
}
printf("%ld\nc", nc);
return 0;
}
运行结果:
分析:
(1)EOF表示文件结束符。在unix/linux/mac系统中,另起一行并按下ctrl+d表示文件结束;在windowx系统中,另起一行并按下ctrl+z表示文件结束。
(2)++表示自加。nc++和++nc都是表示nc = nc + 1。
(3)循环:以输入ab,换行并按下ctrl+d为例:
最初nc=0。然后进入第一次循环,你按下a时,getchar()得到了a,不是结束符,++nc,nc此时变成了1。
第二次循环,你输入了b,不是结束符,执行++nc,nc此时变成了2。
第三次循环,你输入了换行\n,不是结束符,执行nc++,nc变成了3。
第四次循环,你输入了ctrl+d,等价于EOF,循环结束。nc++不被执行。跳出循环。打印出nc的值,就是3。
相关文章推荐
- Linux-C基础知识学习:C语言作业-从键盘输入一行字符,统计其中有多少个字母, 数字,空格(用数组实现,gets)。
- 编写一个程序,输入一行字符,以回车结束,分别统计出其中的英文字母、空格、数字和其他字符的数
- 【程序7】统计出所输入字符中英文字母、空格、数字和其它字符的个数
- Java 文件统计:编写程序,统计英文文本文件中的字符数目和单词数目。程序运行时,输入要统计的文件的名称,程序处理后输出字符数目和单词数目
- 用80x86汇编语言编程--统计输入的字符个数
- 汇编语言统计输入中各字符出现的次数
- C语言学习_008_字符输出/输入和输入确认
- 汇编语言32位控制台读取用户输入字符程序代码分析(17)
- [原创]c++,自己写的一个统计输入的单词个数,行数和字符总数的小程序
- 输入一串字符, 统计特定字符个数
- 【C语言】编写一个程序统计输入字符串中: 各个数字、空白字符、以及其他所有字符出现的次数。
- c 语言中混合输入字符和数字( c primer plus 中的程序 )
- 每日学习心得:CustomValidator验证控件验证用户输入的字符长度、Linq 多字段分组统计、ASP.NET后台弹出confirm对话框,然后点击确定,执行一段代码
- 编写程序从键盘上输入一些字母和数字,统计显示其中的数字字符的个数和非数字字符个数。
- 选择学习"下一个"程序语言
- 【程序17】输入一行字符,分别统计其中英文字母、空格、数字和其它字符的个数
- 每日学习心得:CustomValidator验证控件验证用户输入的字符长度、Linq 多字段分组统计、ASP.NET后台弹出confirm对话框,然后点击确定,执行一段代码
- 学习C/C++语言:字符数组的使用,统计字符串中单词个数
- 基础学习:控制台接收输入字符与重定向输出流实现程序日志两例子的编程
- 编写一个程序统计输入字符串中: 各个数字、空白字符、以及其他所有字符出现的次数