概述
Book
1.5.4
while (c = getchar() != EOF)
{
if(c == ‘ ‘ || c == ‘n’)
flag= 1;
else if (flag == 1)
{
flag = 0;
count++;
}
}
/*判断是否为一个单词的方法是检测空格或换行符,如果存在,设置一个标志表示现在位置是单词外,在该标志值不变时均不增加单词数。当读入非空格字符时,判断是否为首次读入,如果是就将标志置零,同时单词数加一。不能仅仅依据读入的是否为空格就做出判断。*/
1.6
1.
while (c = getchar()) != EOF)
if (c >= ‘0’ && c <= ‘9’)
++ndigit[c-‘0’];
/*实际上由getchar()得到的变量可以以整数的方式存储,该整数的值就是字符对应的ASCII码值,因此如果输入为’0’到’9’,减去’0’即可得到整数0至9,用于对数组对应位置进行处理。*/
2.
C语言中的char类型实际上可以等同于一个1byte的有符号整型数,可以将具体数字直接赋给char类型,如char a = 11,也可以像int类型数据一样进行各种运算。当使用a=getchar()将一个输入字符赋给a时,实际上a的值即等于输入的字符,有等于该字符对应的ASCII码值,具体输出的是ASCII码编号还是字符,要看输出控制是%d还是%c。
#include<stdio.h>
int main()
{
char c,d; //int类型也具有相同效果
c=65;
printf("%cn",c);
d='A';
printf("%dn",d);
return0;
}
1.8
int getline(char s[],int lim) /*将一行字符串复制到s中并返回其长度,注意在结尾加了换行符和字符串结束符*/
{
int c,i;
for(i=0;i<lim-1&& (c = getchar()) !=EOF && c != 'n',i++)
s[i]= c;
if(c == 'n')
{
s[i]= c;
c++;
}
s[i]= '