标题:关于输出时小问题
只看楼主
小蝦米
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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-358694-1-1.html




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

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