练习3-4 统计字符 (15 分)
本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。
输入格式:
输入为10个字符。最后一个回车表示输入结束,不算在内。
输出格式:
在一行内按照
letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数
的格式输出。
输入样例:
aZ &
09 Az
输出样例:
letter = 4, blank = 3, digit = 2, other = 1
代码如下
#include <stdio.h>
int main()
{
int i,ch;
int letter, blank, digit, other;
letter = blank = digit = other = 0;
for (i = 1;i <= 10;++i)
{
ch = getchar();
if ((65 <= ch && ch <= 90) || (97 <= ch && ch <= 122))
letter++;
else if (48 <= ch && ch <= 57)
digit++;
else if (ch == 32 || ch == 10)
blank++;
else
other++;
}
printf("letter = %d, blank = %d, digit = %d, other = %d",letter,blank,digit,other);
return 0;
}
/*
总结:
1.ASCLL码要有印象
2.getchar()的用法要清楚
*/
总结:
字符输入函数 getchar()
- 格式:
ch = getchar();
getchar()返回值是输入字符的ascll码对应值
- 非法输入,返回的值是**-1**
- 一次只能处理一个输入字符,当用户输入多个字符时,返回的是第一个字符。
#include <stdio.h>
int main()
{
while (1)
{
int ch;
ch = getchar();
printf("getchar返回值:%d\n",ch);
printf("putchar返回值:");
putchar(ch);
printf("\n");
}
return 0;
}
示例和结果:
abc 123
getchar返回值:97
putchar返回值:a
getchar返回值:98
putchar返回值:b
getchar返回值:99
putchar返回值:c
getchar返回值:32
putchar返回值:
getchar返回值:49
putchar返回值:1
getchar返回值:50
putchar返回值:2
getchar返回值:51
putchar返回值:3
getchar返回值:32
putchar返回值: //空格 —— 32(空格会返回值)
getchar返回值:10 //回车键——10(回车键会返回值)
putchar返回值:
putchar(参数);
- 格式:
putchar(ch);
putchar(’?’);
- 功能:
输出参数是字符型变量或字符型常量,输出字符型常量时要加单引号 - 调用一次getchar()和putchar()函数只能输入或输出一个字符
ASCLL码
回车 —— 10
空格 —— 32
0 —— 48
9 —— 57
A —— 65
Z —— 90
a —— 97
z —— 122