对于统计输入字符个数时用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'的主要内容,如果未能解决你的问题,请参考以下文章
输入一个字符串,分别统计并输出其中数字字符、字母字符及其它字符的个数。