xuwei97
2017-02-09 05:58C语言中判断字符是否为数字时为什么要用单引号括起来?
#include <stdio.h>
main()
{
int c, i, nwhite = 0, nother = 0;
int ndigit[10];
for (i = 0; i < 10; i++)
ndigit[i] = 0;
while( (c = getchar()) != EOF)
if (c >= '0' && c <= '9')
ndigit[c - '0']++;
else if (c == ' ' || c == '\n' || c == '\t')
nwhite++;
else
nother++;
printf("digits =");
for (i = 0; i < 10; i++)
printf(" %d", ndigit[i]);
printf(", white space = %d, other = %d\n", nwhite, nother);
}
这段代码里,判断输入的字符是否为数字时,为什么不能去掉‘0’和‘9’的单引号?以及下面c既然已经是数字了,为什么不可以直接写ndigit[c],而要写成ndigit[c - '0'] ?试了一下好像确实不可以,但不到是为什么。萌新求教。
- 点赞
- 回答
- 收藏
- 复制链接分享
7条回答
为你推荐
- pat乙级 1031查验身份证
- c语言
- 1个回答
- 有没有前辈可以帮帮忙,感谢!pat乙级 1031查验身份证
- c语言
- 1个回答
- PHP - 为什么仍然会解析双精度内的单引号变量
- string
- quotes
- php
- 4个回答
- 关于c语言字符中的问题
- c
- 字符
- oj
- 2个回答