| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 658 人关注过本帖
标题:又遇一难题,请帮忙
只看楼主 加入收藏
电之龙
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-12-5
收藏
 问题点数:0 回复次数:5 
又遇一难题,请帮忙
要求是输入一行字符,分别统计出其中的英文字母,空格,数字,和其他字符的个数,最好用循环加条件来做~
我只能做到统计出所输入的所有字符,数字或者字母~,我的代码如下,看看有没有朋友能帮我指点一下,最好是能说明下自己怎么想的,谢谢了。
#include "stdio.h"
void main()
{
    char x;
 int i;
 i=0;
 do
 {
  printf("请输入字符串:");
  fflush(stdin);
  do
  {
      x=getchar ();
   i++;
  }
  while (x!='\n');
 
 printf("输入的字母数量为:%d\n",--i);
 }
 while ((x>='a'&& x<='z')||(x>='A'&&x<='Z'));
}
搜索更多相关主题的帖子: 难题 
2007-12-05 21:25
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
/* 不支持汉字 */
#include "stdio.h"
int main(void)
{
    int ch;
    int count;
    int pha, num, symbol;
    pha = num = count = symbol = 0;
    printf("请输入字符串: ");
    while( (ch = getchar()) != EOF && ch != '\n')
    {
        if((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))  /* 字母 */
            pha++;
        else if(ch >= '0' && ch <= '9')        /* 数字 */
            num++;
        else                  /* 符号 */
            symbol++;
        count++;
    }
    printf("字母%d,数字%d,符号%d,共%d。\n", pha, num, symbol, count);
   
    getchar();
    return 0;
}

—>〉Sun〈<—
2007-12-05 21:45
电之龙
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-12-5
收藏
得分:0 
厉害啊!!I服了YOU,我想破了头也弄不明白,要怎样才能打印出来,老大,你一口气做完,佩服佩服啊~
但有些地方不明白,首先while( (ch = getchar()) != EOF && ch != '\n')中的EOF是指什么?
为什么会用上这个?
还有就是
      else                  /* 符号 */
         symbol++;
        count++;
中的symbol++;是什么意思?我明白count是指数量的自增,但不明白为什么还要加symbol++?

在C的海洋里挣扎,在SQL的代码中翻滚,马上面临JAVA的降临
2007-12-05 21:58
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
        if((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))  /* 字母 */
            pha++;
        else if(ch >= '0' && ch <= '9')        /* 数字 */
            num++;
        else                  /* 符号 */
            symbol++;
        count++;   /* 这个总字符数 */

symbol  是符号,

如果是 字母
    pha++
否则 如果是 数字
    num++
否则                  /* 既然上面2个条件不满足,那么剩下的就只有符号的 */
    symbol++

/* 这个程序空格也当作符号处理,数字和字母外的其它字符都是符号 */

//----------------------------------------------
EOF 是文件结尾 (End Over File)
Windows 命令提示符下输入 Ctrl + Z 。

//

[[italic] 本帖最后由 cosdos 于 2007-12-5 22:09 编辑 [/italic]]

—>〉Sun〈<—
2007-12-05 22:04
wangyinshiwo
Rank: 1
等 级:新手上路
帖 子:75
专家分:0
注 册:2007-11-9
收藏
得分:0 
#include"stdio.h"
main()
{char c;
int a=0,b=0,t=0,d=0;
while((c=getchar())!='\n')
{if(c>='a'&&c<='z'||c>='A'&&c<='Z') a++;
else if(c==' ')b++;
else if(c>='0'&&c<='9')t++;
else d++;
}
printf("a=%d\nb=%d\nt=%d\nd=%d\n",a,b,t,d);
}

抽刀断水水更流,举杯消愁愁更愁。
2007-12-05 22:05
电之龙
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-12-5
收藏
得分:0 
cosdos 朋友说得相当详细,非常感谢,我懂了,wangyinshiwo朋友给的答案也很正确,而且把空格单独处理了,方法一模一样,都很好,谢谢你们的解惑,嘿嘿,小弟我受教了~

在C的海洋里挣扎,在SQL的代码中翻滚,马上面临JAVA的降临
2007-12-05 22:23
快速回复:又遇一难题,请帮忙
数据加载中...
 
   



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

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