(环境为Microsoft Visual Studio 2022 Community)
注:因为程序是判断EOF为终止,而非回车,因此运行程序输入完成时需按“Ctrl+Z”后再按回车键,且该动作占用一个“换行符”(控制台上显示为^Z)
1.1-8 编写一个统计空格、制表符和换行符个数的程序。
#include<stdio.h>
int main()
{
int a,b,c,d;
b = c = d = 0;
while ((a = getchar()) != EOF)
{
if (a == ' ')
b++;
if (a == '\t')
c++;
if (a == '\n')
d++;
}
printf("空格有%3d个,制表符有%3d个,换行符有%3d个。\n", b, c, d);
}
2.1-9 编写一个将输入复制到输出的程序,并将其中连续的多个空格用一个空格代替。
重点代码:ns=0,使得重新出现空格前ns保持为0
#include<stdio.h>
int main()
{
int c,ns;
ns = 0;
{
while ((c = getchar()) != EOF)
if (c != ' ')
{
putchar(c);
ns = 0;
}