| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 826 人关注过本帖
标题:有时间吗,能帮我解决个问题吗?
只看楼主 加入收藏
max668
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2010-7-25
结帖率:100%
收藏
 问题点数:0 回复次数:8 
有时间吗,能帮我解决个问题吗?
有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母,小写字母,数字,空格,,以及其他字符个数。

#include "stdafx.h"
#include<stdio.h>

int main(int argc, char* argv[])
{
    int i,j,upp,low,dig,spa,oth;

    char text[3][80];
    upp=low=dig=spa=oth=0;
    for(i=0;i<3;i++)
    {
        printf("\nplease input line %d:\n",i+1);
        gets(text[i]);
        for(j=0;j<80&&text[i][j]!='\0';j++)//在这里为什么设定text[i][j]!='\0'???我删除了它编译后,发觉小写字母个数为0,而大写字母的个数增加了小写字母的个数
        {
            if(text[i][j]>='A'&&text[i][j]<='z')
            {upp++;}
            else if(text[i][j]>='a'&&text[i][j]<'z')
            {low++;}
            else if(text[i][j]>='0'&&text[i][j]<='9')
            {dig++;}
            else if(text[i][j]==' ')
            {spa++;}
            else
            {oth++;}
        }
    }
    printf("\nupper case:%d\n",upp);
    printf("lower case :%d\n",low);
    printf("digit      :%d\n",dig);
    printf("space      :%d\n",spa);
    printf("other      :%d\n",oth);
    return 0;
}
请大家给看看,初学C语言。
搜索更多相关主题的帖子: 时间 
2010-08-14 15:02
yesyesgirl
Rank: 1
等 级:新手上路
帖 子:43
专家分:9
注 册:2010-7-20
收藏
得分:0 
这叫初学啊!书都看了一大半了吧!!
2010-08-14 15:45
最近不在
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:204
专家分:842
注 册:2010-2-28
收藏
得分:0 
如果我没看错的话,有个z写错了,应该是Z
2010-08-14 16:07
建爱花一生
Rank: 1
等 级:新手上路
帖 子:10
专家分:6
注 册:2010-8-7
收藏
得分:0 
这完全可以不用如此麻烦,你可以去看一些库函数,如 int isupper();int islower(); int isalpha(); int isalnum();他们分别是如果是大写字母则返回非0值,否则返回0,下面亦同,如果是小写;如果是字母;如果是字母或数字;
2010-08-14 17:42
carmeloyin
Rank: 3Rank: 3
来 自:西安
等 级:论坛游侠
帖 子:161
专家分:157
注 册:2008-12-2
收藏
得分:0 
#include "stdafx.h"
#include<stdio.h>

int main(int argc, char* argv[])
{
    int i,j,upp,low,dig,spa,oth;

    char text[3][80];
    upp=low=dig=spa=oth=0;
    for(i=0;i<3;i++)
    {
        printf("\nplease input line %d:\n",i+1);
        gets(text[i]);
        for(j=0;j<80&&text[i][j]!='\0';j++)//在这里为什么设定text[i][j]!='\0'???我删除了它编译后,发觉小写字母个数为0,而大写字母的个数增加了小写字母的个数
        {
            if(text[i][j]>='A'&&text[i][j]<='z')  //应该是大写的Z
            {upp++;}
            else if(text[i][j]>='a'&&text[i][j]<'z')
            {low++;}
            else if(text[i][j]>='0'&&text[i][j]<='9')
            {dig++;}
            else if(text[i][j]==' ')
            {spa++;}
            else
            {oth++;}
        }
    }
    printf("\nupper case:%d\n",upp);
    printf("lower case :%d\n",low);
    printf("digit      :%d\n",dig);
    printf("space      :%d\n",spa);
    printf("other      :%d\n",oth);
    return 0;
}
不过我不明白你main(这里面2个参数)是干什么的

[ 本帖最后由 carmeloyin 于 2010-8-14 17:48 编辑 ]
2010-08-14 17:45
max668
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2010-7-25
收藏
得分:0 
嗯,确实打错了,谢谢啦
2010-08-14 22:44
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
收藏
得分:0 
回复 楼主 max668
哈哈 逻辑上没有错误,只有一个小小的手误!!!

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2010-08-14 22:51
max668
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2010-7-25
收藏
得分:0 
对啊,就是怕这个,很难检查
2010-08-15 01:30
kevin_zh
Rank: 4
来 自:农村
等 级:业余侠客
威 望:1
帖 子:129
专家分:250
注 册:2010-8-14
收藏
得分:0 
真是明察秋毫啊,一个小小的字母都能看的出来

"please input a number :\n"
2010-08-15 09:55
快速回复:有时间吗,能帮我解决个问题吗?
数据加载中...
 
   



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

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