统计英文大写字母,小写字母,数字,空格,符号字符的个数

luckyyulin 2010-11-14 12:38:32
为什么下面的程序统计不出空格的树木呢?还有就是我只要输入空格,系统就认为是要输入下一个字符串啊?
main()
{
int i,j,m=0,b=0,c=0,d=0,e=0;
char a[3][80];
for(i=0;i<3;i++)
{
printf("please input string:");
scanf("%s",a[i]);
}
for(i=0;i<3;i++)
{
printf("%s",a[i]);
printf("\n");
}
for(i=0;i<3;i++)
{
for(j=0;a[i][j]!='\0';j++)
{
if(a[i][j]>'A'&&a[i][j]<'Z')
{
m++;
}
else
{
if(a[i][j]<'z'&&a[i][j]>'a')
{
b++;
}
else
{
if(a[i][j]<'9'&&a[i][j]>'0')
{
c++;
}
else
{
if(a[i][j]==32)
{
d++;
}
else
{
e++;
}
}
}
}

}
printf("第%d行 m=%d b=%d c=%d d=%d e=%d\n",i,m,b,c,d,e);
m=0;b=0;c=0;d=0,e=0;

}

getch();
}
...全文
309 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
a707000646 2010-11-14
  • 打赏
  • 举报
回复
用gets,或者C++的cin.getline()
或者自己编一个函数
用while语句
Dstnoe 2010-11-14
  • 打赏
  • 举报
回复
scanf()默认非法字符是 回车和空格,当你输入空格,即认为你输入结束,用gets()输入一行,遇到回车结束
無_1024 2010-11-14
  • 打赏
  • 举报
回复
把输入换成gets()就可以了scanf不接受空格的
無_1024 2010-11-14
  • 打赏
  • 举报
回复
main()
{
int i,j,m=0,b=0,c=0,d=0,e=0;
char a[3][80];
printf("please input string:");
for(i = 0;i < 3;i++)
gets(a[i]);
for(i=0;i<3;i++)
{
printf("%s",a[i]);
printf("\n");
}
for(i=0;i<3;i++)
{
for(j=0;a[i][j]!='\0';j++)
{
if(a[i][j]>'A'&&a[i][j]<'Z')
{
m++;
}
else
{
if(a[i][j]<'z'&&a[i][j]>'a')
{
b++;
}
else
{
if(a[i][j]<'9'&&a[i][j]>'0')
{
c++;
}
else
{
if(a[i][j]==32)
{
d++;
}
else
{
e++;
}
}
}
}

}
printf("第%d行 m=%d b=%d c=%d d=%d e=%d\n",i,m,b,c,d,e);
m=0;b=0;c=0;d=0,e=0;

}

//getch();
}

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧