CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

菜鸟问题(字符统计)

楼主dengyiwolf(七星偃月刀)2006-03-07 15:36:20 在 C/C++ / C语言 提问

#include   <stdio.h>  
  void   main(void)  
        {  
                long   nc;  
   
                nc   =   0;  
                while   (getchar()   !=   EOF)  
                        ++nc;  
                printf("%ld\n",   nc);  
        }  
   
  当运行是输入如下:  
  a  
  b  
  c  
  d  
  ^z  
  后,输出结果为8,请问我想要的结果为4,为什么会是8呢?  
  环境为:vc6.0或者tc2.0都是同样的结果,请详细指点.  
  问题点数:30、回复次数:12Top

1 楼kimsea(小鸟)回复于 2006-03-07 15:47:47 得分 2

a  
  b  
  c  
  d  
  这样的输入,换行也算字符,所以8个  
   
  你这样输入:abcd   就应该没问题Top

2 楼lbing7(向青润老大学习!!!)回复于 2006-03-07 15:48:05 得分 2

回车也算!Top

3 楼lbing7(向青润老大学习!!!)回复于 2006-03-07 15:48:57 得分 2

在你里面加入一个判断是不是你想要的字符就行了!  
   
  判断之后再计数Top

4 楼Squall1009(钰枫)(找工作ing)回复于 2006-03-07 15:49:37 得分 5

#include   <stdio.h>  
  int   main()  
  {  
  long   nc;  
  int   i   =   0;  
  nc   =   0;  
  while   (   (i   =   getchar())   !=   EOF)  
  if(i   !=   '\n')  
  ++nc;  
  printf("%ld\n",   nc);  
  system("pause");  
  return   0;  
  }  
   
   
  是因为回车的问题Top

5 楼kimsea(小鸟)回复于 2006-03-07 15:57:31 得分 3

#include   <stdio.h>  
  int   main(void)  
  {  
  long   nc   =   0;  
  int   i   =   0;  
  while   (   (i   =   getchar())   !=   EOF)  
    {  
      if(i   !=   '\n')  
      ++nc;  
    }  
  printf("%ld\n",   nc);  
  return   0;  
  }Top

6 楼allensoso(死性不改)回复于 2006-03-07 16:00:07 得分 2

回车也是字符啊Top

7 楼ugg(逸学堂(exuetang.net))回复于 2006-03-07 16:28:36 得分 2

回车'\n'也是一个字符Top

8 楼jixingzhong(瞌睡虫·星辰)回复于 2006-03-07 19:53:06 得分 10

呵呵,既然你只要计算   字母   个数,  
  那么就不要对输入计数就好了啊   ~  
   
  #include   <stdio.h>  
  void   main(void)  
        {  
                long   nc;  
                char   ch;      
   
                nc   =   0;  
                while   (((ch   =   getchar())>'a'   &&   ch   <   'z')||  
                              ((ch   =   getchar())>'A'   &&   ch   <   'Z'))  
                        ++nc;  
                printf("%ld\n",   nc);  
        }Top

9 楼jixingzhong(瞌睡虫·星辰)回复于 2006-03-07 20:00:06 得分 0

...  
  上面偷懒,   出错了   ~  
  晕!!!!  
   
  #include   <stdio.h>  
  void   main(void)  
        {  
                long   nc;  
                char   ch;      
   
                nc   =   0;  
                while   (ch   =   getchar())  
                        if((ch>'a'   &&   ch   <   'z')||  
                              (ch>'A'   &&   ch   <   'Z'))  
                            ++nc;  
                printf("%ld\n",   nc);  
        }Top

10 楼jixingzhong(瞌睡虫·星辰)回复于 2006-03-07 20:02:04 得分 0

或者是输入的时候,  
  字母之间不要有什么间隔符号(回车,空格等),  
   
  这些都会作为字符被计算进去的   ~  
   
  也就是说,  
  楼主你的程序是计算   输入字符的个数   ...  
  要计算字母的话   ...  
  呵呵,  
  用上面的语句,判断一下就可以Top

11 楼zlkw(C++门诊正在营业!!!)回复于 2006-03-07 21:36:12 得分 2

#include   <stdio.h>  
  int   main(void)  
  {  
  long   nc   =   0;  
  int   i   =   0;  
  while   (   (i   =   getchar())   !=   EOF)  
    {  
      if(i   !=   '\n')  
      ++nc;  
    }  
  printf("%ld\n",   nc);  
  return   0;  
  }  
   
   
  弱弱的问一句。这个程序的运行以后输入的时候怎么样才算是结束呢?  
   
  Top

12 楼duduhaha(三人行必有我师)回复于 2006-03-07 22:35:56 得分 0

unix   ctrl+d  
  ms-dos   ctrl+zTop

相关问题

  • 菜鸟求助!关于字符串统计的!
  • =^=^=VB字符串菜鸟求教=^=^=
  • 菜鸟问题,BCB的字符输出
  • 菜鸟问题:关于字符串
  • 菜鸟问题:字符串的转变
  • 菜鸟问题:关于字符串
  • 菜鸟问题:字符串问题
  • 菜鸟问题:求连接字符串
  • 菜鸟问题(100分)在字符串中查字符的函数。
  • perl如何统计一个字符串的字符个数??

关键词

  • 字符
  • nc
  • 回车
  • getchar
  • 输入
  • ch
  • eof
  • ld
  • abcd
  • 问题

得分解答快速导航

  • 帖主:dengyiwolf
  • kimsea
  • lbing7
  • lbing7
  • Squall1009
  • kimsea
  • allensoso
  • ugg
  • jixingzhong
  • zlkw

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo