第1个回答 2019-08-05
1
while语句:
#include
int
main(void)
{
//输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
char
ch;
int
char_num=0,kongge_num=0,int_num=0,other_num=0;
while((ch=getchar())!='\n')//回车键结束输入,并且回车符不计入
{
if(ch>='a'&&ch<='z'||ch<='z'&&ch>='a')
{
char_num++;
}
else
if(ch=='
')
{
kongge_num++;
}
else
if(ch>='0'&&ch<='9')
{
int_num++;
}
else
{
other_num++;
}
}
printf("字母=
%d,空格=
%d,数字=
%d,其它=
%d\n",char_num,kongge_num,int_num,other_num);
return
0;
}
2
,do
while语句:
#include
int
main(void)
{
//输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
char
ch;
int
char_num=0,kongge_num=0,int_num=0,other_num=0;
do
{
if(ch>='a'&&ch<='z'||ch<='z'&&ch>='a')
{
char_num++;
}
else
if(ch=='
')
{
kongge_num++;
}
else
if(ch>='0'&&ch<='9')
{
int_num++;
}
else
{
other_num++;
}
}
while((ch=getchar())!='\n')//回车键结束输入,并且回车符不计入
printf("字母=
%d,空格=
%d,数字=
%d,其它=
%d\n",char_num,kongge_num,int_num,other_num);
return
0;
}
第2个回答 2019-07-23
((ch=getchar())!='\n')的作用
首先将getchar()赋值给ch,然后将CH的值作为括号内赋值表达式的结果参与!=运算.这个表达式在一行内实现了赋值和判断.
其意义就是判断GETCHAR取得的字符是否为回车,并把GETCHAR()赋值给CH.
getchar只能接受单个字符
想接受一行字符可以使用getline().getline会在输入流中读取连续的字符直到遇到回车符,如果读入流为空则返回0.