| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 339 人关注过本帖
标题:关于输出时小问题
只看楼主 加入收藏
小蝦米
Rank: 2
等 级:论坛游民
帖 子:38
专家分:88
注 册:2011-12-18
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:2 
关于输出时小问题
#include <stdio.h>
#include <string.h>
void main()
{
    int  i,j,b[4]={0,0,0,0},t;
    char a[50];

    printf ("请输入一个字符串:\n");
    gets(a);
    t=strlen(a) ;
   
    if (t==0)
   
        printf ( "这是一个空字符串!\n" ) ;
    else
        {
            for (i=0;i<=t;i++)
            {
                if (a[i]>='0'&&a[i]<='9')
                    b[0]++;
                else if (a[i]==' ')
                    b[1]++;
                else if (a[i]>='A'&&a[i]<='Z')
                    b[2]++;
                else if (a[i]>='a'&&a[i]<='z')
                    b[2]++;
                else
                    b[3]++;
            }
        
            for (j=0;j<=3;j++)
                printf("b[%d]=%d\n",j,b[j]);
        }
    printf("字符串长度是:%d\n",t);
}
为什么b[3]比字符串长度多1
搜索更多相关主题的帖子: 字符串 include 
2011-12-27 00:54
hk327143206
Rank: 2
等 级:论坛游民
帖 子:35
专家分:31
注 册:2011-6-25
收藏
得分:5 
这个是因为你的在进行符号判断时多加了一个长度!for (i=0;i<=t;i++)应该改成for (i=0;i<t;i++),长度增加了一个,系统会随机生成一个字符!故那个b[3]会多一个!
2011-12-27 01:33
小蝦米
Rank: 2
等 级:论坛游民
帖 子:38
专家分:88
注 册:2011-12-18
收藏
得分:0 
回复 2楼 hk327143206
谢了,我知道了
2011-12-27 05:05
快速回复:关于输出时小问题
数据加载中...
 
   



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

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