输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数.

来源:百度知道 编辑:UC知道 时间:2024/05/24 20:35:57
#include<stdio.h>
main()
{
int ch,en=0,n=0,s=0,q=0;
clrscr();
printf("Please Input:\n");
while((ch=getchar())!='\n')
{
if(ch<='z'&&ch>='a'||ch<='Z'&&ch>='A') en++;
else if(ch==' ') s++;
else if(ch<='9'&&ch>='0') n++;
else q++;
}
printf(" letters Number: %d\n Num Number: %d\n Spaces Number: %d\n Other Number: %d\n",en,n,s,q);
getch();
其中while((ch=getchar())!='\n') 的意义和作用?
而且getchar只能接受单个字符,这里为什么能接受一行字符?

while((ch=getchar())!='\n') 就是一直接收字符直到接收到的是回车.
另外,C语言的输入输出牵涉到一个缓冲机制,这里一直输入直到有一个回车才会从缓冲区读出数据.你不妨试一下编一个程序,输入N行,以EOF结尾,然后输出,你会发现,每输入一行按回车后,下面就会先输出你刚输入的那一行字符,然后再让你继续输入,直到遇上EOF(ctrl+z)相信这样会让你更好的理解.

while((ch=getchar())!='\n')
这是一个循环语句,当接收到的字符不是换行时,就继续接收下一个字符,直到接收到换行时,就跳出循环,继续执行下面的语句

'\n'当碰上的不是回车键时,做下面的语句
一行字符不是由一个一个的安符构成的么

((ch=getchar())!='\n')的作用
首先将getchar()赋值给ch,然后将CH的值作为括号内赋值表达式的结果参与!=运算.这个表达式在一行内实现了赋值和判断.
其意义就是判断GETCHAR取得的字符是否为回车,并把GETCHAR()赋值给CH.

getchar只能接受单个字符
想接受一行字符可以使用getline().getline会在输入流中读取连续的字符直到遇到回车符,如果读入流为空则返回0.

题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 编程:输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 输入一行字符,分别统计出其中的英文字母.空格.数字.和其他字符的个数! 输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数 任意输入一行字符,分别统计出其中英文字母、空格、数字和其它字符个数。 输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数. 求:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数 输入一行字符,分别统计出其中的英文字母,空格,数字和其他数值的个数 输入一行字符 统计出其中的英文字母