C语言问题,c-'0'是什么意思

这是一个统计各个数字,空白符,其他字符的代码,其中1.c-'0'是什么意思2.intndigit[10];是什么意思3.if(c==''||c=='\n'||c=='\t... 这是一个统计各个数字,空白符,其他字符的代码,其中
1.c-'0'是什么意思
2.int ndigit[10];是什么意思
3.if(c==' '||c=='\n'||c=='\t')的c==''中间要打空格吗
4.printf(",white space=%d,other=%d\n",nwhite,nother);为什么要加第一个,逗号
#include<stdio.h>

main()
{
int c,i,nwhite,nother;
int ndigit[10];
nwhite=nother=0;
for(i=0;i<10;++i)
ndigit[i]=0;
while((c=getchar())!=EOF)
if(c==' '||c=='\n'||c=='\t')
++nwhite'
else if(c>='0'&&c<='9')
++ndigit[c-'0'];
else
++nother;
printf("digits=");
for(i=o;i<10;++i)
printf("%d",ndigit[i]);
printf(",white space=%d,other=%d\n",nwhite,nother);
}
为什么要-‘0’啊,'0‘在这是等于0吗,那为什么要减,直接c不可以吗
展开
 我来答
张三掩面
2009-05-04 · TA获得超过3298个赞
知道小有建树答主
回答量:851
采纳率:0%
帮助的人:0
展开全部
转义字符:
\0 :字符串结束标志;
\n :换行(ascⅱ码为10);
\t :横向跳格;
\b :退格;
\r :回车(ascⅱ码为13);
\f :走纸换页;
\\ :字符\(ascⅱ码为92);
\' :单引号;
'\"':双引号;
\ddd:用8进制表示字符;
\xhh:用16进制表示字符

如果输入空串的话,程序就会输出 thanks
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wuhouzheng
2009-05-04 · TA获得超过8561个赞
知道小有建树答主
回答量:1010
采纳率:100%
帮助的人:1261万
展开全部
#include <stdio.h>
void main()
{
char a;
a=getchar();
if (a=='\0');
printf("thanks");
}

运行时输入:回车
显示thanks

c语言'\0' 意思:
字符常量占一个字节的内存空间。字符串常量占的内存字节数等于字符串中字节数加1。增加的一个字节中存放字符"\0" (ASCII码为0)。这是字符串结束的标志。
例如:
字符串 "C program" 在内存中所占的字节为:
C p r o g r a m \0
字符常量'a'和字符串常量"a"虽然都只有一个字符,但在内存中的情况是不同的。
'a'在内存中占一个字节,可表示为:
a
"a"在内存中占二个字节,可表示为:
a \0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a4138
2014-01-26 · TA获得超过265个赞
知道小有建树答主
回答量:395
采纳率:0%
帮助的人:102万
展开全部
变量c的值-字符'0'的结果。'0'的值是十进制的48。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
斷西偑
2014-01-26 · TA获得超过468个赞
知道小有建树答主
回答量:306
采纳率:0%
帮助的人:76.3万
展开全部
char类型的ASSCI编码相减
比如 'a'=100
'b'=98

a-b =2 所以a-b ='c'

类似这样,数字我只是随便写的 不准 具体的可以去查码表
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mr_shj
2015-05-16 · TA获得超过2679个赞
知道大有可为答主
回答量:1665
采纳率:94%
帮助的人:1362万
展开全部
c的值减去‘0’的ASC值,相当于c-48
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式