| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1002 人关注过本帖
标题:求高手给个思路!!!!!!1
只看楼主 加入收藏
风雨中慢步
Rank: 2
等 级:论坛游民
帖 子:43
专家分:26
注 册:2011-11-4
结帖率:81.82%
收藏
已结贴  问题点数:12 回复次数:12 
求高手给个思路!!!!!!1
不用数组
什么样能“输入一行字符,分别统计出英文字母、空格、数字和其他字符的个数”???????????
搜索更多相关主题的帖子: 其他 统计 英文字母 
2012-03-28 23:36
xuechw
Rank: 2
等 级:论坛游民
帖 子:4
专家分:21
注 册:2012-3-23
收藏
得分:1 
输入作为一个字符串str[],for(i = 0; c = str[i];i++)  循环里面判断  if  'a'<=c<='Z'  ...  
else if   c=' ' ... else if  '0'<=c<='9'...   else  .....

写得有点乱
2012-03-28 23:45
风雨中慢步
Rank: 2
等 级:论坛游民
帖 子:43
专家分:26
注 册:2011-11-4
收藏
得分:0 
2楼你没有看清我的要求吗?
不用数组求啊
2012-03-29 00:01
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
收藏
得分:1 
那你就一个一个读入,然后判断 遇到 回车结束循环 !

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2012-03-29 00:09
han8716
Rank: 1
等 级:新手上路
帖 子:76
专家分:3
注 册:2012-2-12
收藏
得分:3 
回复 楼主 风雨中慢步
手机回复你下。数字就`0`到`9`,你用个数组a[10]还可以算出数字0到9分别出现的次数,这里求0到9用c-`0`切记。字符就是a到z啊。不会数组指针就用while(c=getchar()!=EOF)空格就是空格啊。如果统计单词数也可以。最好自己去想。自己想不明白再问,C最重要是思想,语言都是浮云。真的,我也刚学一个月多点。看了很几个版本视频和书。现在就是逼着自己去想去做。逻辑思维太真要。
2012-03-29 00:50
chenliangjs
Rank: 2
等 级:论坛游民
帖 子:34
专家分:89
注 册:2012-1-14
收藏
得分:2 
将输入的字符一个一个读出来,用switch  case语句。。。你要统计几个就用几个变量。。累加就行。。不用数组。。
2012-03-29 10:49
c_cup
Rank: 2
等 级:论坛游民
帖 子:20
专家分:71
注 册:2012-3-21
收藏
得分:4 
程序代码:
int main(void)
{
    .
    .
    .
    while(c != '\n')
    {
            c = getchar();
            switch(c)
            {
                     .
                     .
                     .
            }
    }
    .
    .
    .
    return 0;
}

成功就像怀孕,大家都来恭喜你,但是没人知道你被操了多少次.
2012-03-29 11:03
c_cup
Rank: 2
等 级:论坛游民
帖 子:20
专家分:71
注 册:2012-3-21
收藏
得分:1 
问题是: 如果统计的字符有一长串的回车怎么办?
putchar()一到回车就刺激他执行了...实际上这是利用了stdin,相当于一个数组了

成功就像怀孕,大家都来恭喜你,但是没人知道你被操了多少次.
2012-03-29 11:07
于祥
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:5
帖 子:1047
专家分:4132
注 册:2011-4-24
收藏
得分:0 
程序代码:
#include <stdio.h>
int main(void)
{
    char c;
    int a = 0,b = 0,d = 0,e = 0;

    printf("enter the string:");
    while ((c = getchar()) != '\n')
    {
        if ((c >= 'a'&&c <= 'z')||(c >= 'A'&&c<= 'Z'))
          a++;
        else if (c == ' ')
          b++;
        else if (c >= '0' && c <= '9')
          d++;
        else
          e++;
    }
    printf("英文字母为:%d\n数字为:%d\n空格为:%d\n其它为:%d\n",a,d,b,e);

    return 0;
}

这样呗

最基础的往往是你最容易忽略的!
2012-03-29 13:21
明明哥8991
Rank: 1
等 级:新手上路
帖 子:17
专家分:2
注 册:2012-3-27
收藏
得分:0 


#include "stdio.h"
#include "conio.h"

main()
{
    char c;
    int letter=0,space=0,digit=0,other=0;
    printf("请输入一行字符:\n");
    while((c=getchar())!='\n')
    {
        if(c>='a'&&c<='z'||c>='A'&&c<='Z')
            letter++;
        else  
            if(c==' ')
                space++;
            else
                if(c>='0'&&c<='9')
                    digit++;
                else
                    other++;
    }
    printf("字母数=%d,空格数=%d,数字=%d,其他字符=%d\n",letter,space,digit,other);
    getch();
 }
其实很简单嘛
2012-03-29 17:08
快速回复:求高手给个思路!!!!!!1
数据加载中...
 
   



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

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