c语言输入字符串 Eof,C语言多行字符串eof问题如何解决?

C语言多行字符串eof问题如何解决?

#include

void main()

{ printf("input a sentence \n");

char a[80],*p;

int i=0,lowercase=0,uppercase=0,space=0,tab=0,enter=0;

printf("ps: input ctrl+z to end of the input and press enter to show the result\n");

printf("=====================================\n");

while(1)

{ if((a[i]=getchar())==EOF)

break;

i++;

}

p=&a[0];

while(1)

{if(*p==EOF)

break;

if((*p>='a')&&(*p<='z'))

lowercase++;

else if(*p==' ')

space++;

else if(*p==' ')

tab++;

else if(*p=='\n')

enter++;

else if((*p>='A')&&(*p<='Z'))

uppercase++;

p++;

}

printf("=====================================\n");

printf("lowercase %d\n",lowercase);

printf("uppercase %d\n",uppercase);

printf("space %d\n",space);

printf("tab %d\n",tab);

printf("enter %d\n",enter);

}

程序已经算是成功了

可是有很多让我不爽的地方

首先是ctrl+z必须在行首输入

然后就是当输入ctrl+z之后 还需要输入回车才会显示结果

高手们能不能帮忙改改

让一旦输入ctrl+z 就能使之输出结果

而且因为输入ctrl+z结束时需要按回车 似乎enter的统计也有问题

古冶

发布

2个回答

67b0a70febe552c922c54bb8560d6ef6.png

精华知识

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值