C语言字符串数字求和程序疑问:string[count]-'0'作用解析
为什么C语言里要给字符数字减去'0'?
在C语言中,字符串里的数字(比如'0'、'1'这类)本质是ASCII字符,它们对应的编码值是连续排列的:'0'的ASCII值为48,'1'是49,'2'是50……一直到'9'是57。
如果直接把字符'5'加到sum变量里,实际累加的是它的ASCII码值53,这显然不是我们需要的数字5。而string[count] - '0'这个操作,就是利用数字字符编码连续的特性,把字符形式的数字转换成对应的整数:
- 比如
'3' - '0'= 51 - 48 = 3(整数) '9' - '0'= 57 - 48 = 9(整数)
这样sum累加的就是实际的数字数值,才能得到正确的字符串数字之和。
内容的提问来源于stack exchange,提问作者Jamie Laden
相关产品推荐
相关产品推荐

