对于统计输入字符个数时用while( ( ch=getchar() ) != '\n'

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对于统计输入字符个数时用while( ( ch=getchar() ) != '\n'相关的知识,希望对你有一定的参考价值。

对于统计输入字符个数时用while( ( ch=getchar() ) != '\n'万一你输入字符中有\n
例如abcd\nefg那不就中途断了么

凡是用到这种形式的语句,
那么都是限定每次处理一行数据的.
而如果输入中有\\n, 那么getchar的时候,会得到\\和n两个字符.
用来判断的\\n是转义字符, 实际值为0x0A
参考技术A 不会,它是一个一个的读,先读\,再一次再读n追问

\n不是一个字符么

追答

在双引号里面的字符串中出现\n是一个字符。你现在用getchar()是一个字符一个字符的读取,还没等到读取n的时候\已经被读取了。

本回答被提问者采纳
参考技术B 这个有几种情况,一是手动输入的是\n,而不是直接回车,这是两种情况,\n手动输入的话是两个字符,并不会认为是回车,
但是如果你是想换行继续输入的话(也就是输入中按回车),这种情况下是不能用getchar的,它遇到回车就会中断,你可以用这种
while((scanf("%c",&ch))!=EOF)
这个是按Ctrl+Z中止。追问

那其他两个人回答对吗会一个个读么

用C语言编写一个程序,输入一个字符串,统计其中各个字符出现的次数

//输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。
#include<stdio.h>
int main(void)

    char ch;
int a=0,b=0,c=0,d=0;
while((ch=getchar())!=\'\\n\')

if(ch>=\'A\'&&ch<=\'Z\'||ch>=\'a\'&&ch<=\'z\')
a++;
else if(ch>=\'0\'&&ch<=\'9\')
b++;
else if(ch==\' \')
c++;
else 
d++;

printf("字母=%d\\n数字=%d\\n空格=%d\\n其他字符=%d\\n",a,b,c,d);
return 0;
参考技术A //输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。
#include<stdio.h>
int main(void)

char ch;
int a=0,b=0,c=0,d=0;
while((ch=getchar())!='\n')

if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z')
a++;
else if(ch>='0'&&ch<='9')
b++;
else if(ch==' ')
c++;
else
d++;

printf("字母=%d\n数字=%d\n空格=%d\n其他字符=%d\n",a,b,c,d);
return 0;
参考技术B //输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。
#include
int main(void)

char ch;
int a=0,b=0,c=0,d=0;
while((ch=getchar())!='\n')

if(ch>='a'&&ch<='z'||ch>='a'&&ch<='z')
a++;
else if(ch>='0'&&ch<='9')
b++;
else if(ch==' ')
c++;
else
d++;

printf("字母=%d\n数字=%d\n空格=%d\n其他字符=%d\n",a,b,c,d);
return 0;
参考技术C //输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。
#include<stdio.h>
int
main(void)

char
ch;
int
a=0,b=0,c=0,d=0;
while((ch=getchar())!='\n')

if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z')
a++;
else
if(ch>='0'&&ch<='9')
b++;
else
if(ch=='
')
c++;
else
d++;

printf("字母=%d\n数字=%d\n空格=%d\n其他字符=%d\n",a,b,c,d);
return
0;

以上是关于对于统计输入字符个数时用while( ( ch=getchar() ) != '\n'的主要内容,如果未能解决你的问题,请参考以下文章

输入一个字符串,分别统计并输出其中数字字符、字母字符及其它字符的个数。

统计数字字符个数

用C语言编写一个程序,输入一个字符串,统计其中各个字符出现的次数

getchar fflush 的分析笔记

C语言实验题——统计子字符串个数

8.11.3 统计大小写字符个数