读/写字符的几种方法
char ch;
scanf("%c", &ch);
printf("%c", ch);
scanf函数的大概工作流程是:挨个地拿缓冲区的字符与格式串的字符进行匹配,对于格式串中的转换说明,匹配成功则读入字符;匹配不成功,则将字符退回缓冲区,函数返回;对于格式串中的普通字符和空白符,匹配成功时把字符丢掉,匹配不成功,则将字符退回缓冲区,函数返回。
scanf()函数通常情况下能够读入所有字符(包括普通字符和空白字符),即在读入字符前不会跳过空白符。如果要读取的字符是空格或换行符,那么scanf函数会把该空格或换行符读入变量ch中。注意,scanf函数在读入数时会自动跳过两个数之间的空白字符。
读入字符时跳过空白字符的方法
在格式串中放置普通字符或空白符,以指明要跳过这些字符。
格式串" %ch“跳过普通字符前所有的空白字符,将碰到的第一个普通字符读入变量c中。
式串"%ch "将碰到的第一个普通字符读入变量c后,跳过该字符后所有的空白字符直至碰到第二个普通字符并将其作为缓冲区的第一个字符,因此在输入时要求输入两个普通字符以结束此次输入。
同理,scanf函数也可以跳过任意指定的普通字符,方法同上。
char ch;
ch = getchar();
putchar(ch);
与scanf函数一样,gechar函数也不会在读取时跳过空白字符。putchar函数和scanf函数的执行速度比printf函数和scanf函数快。
搜寻字符或跳过行剩余部分的方法
while((ch = getchar()) != '/n')
;
ch碰到换行符时才会跳出循环。
跳过空格或字符的方法
while((ch = getchar()) == ' ')
;
当循环终止时,ch存储碰到的第一个非空格字符。
由上可见,通过在表达式中使用==和!=来寻找相同或不相同的数据对象,找到后进行所需要操作,如跳过,计数,读/写,移动,交换等。
当使用==时,对相同的数据对象的操作是在循环体进行,对不相同的数据对象的操作是在循环体之外进行的。
与==相反,当使用!=时,对不相同的数据对象的操作是在循环体进行,对相同的数据对象的操作是在循环体之外进行的。
相关的,使用<或>来寻找包含和排除的关系。