如何将字符串中的单个字符转换为整数

3

请注意,如果您选择回答问题,我是编程领域的初学者,可能需要比其他人更详细的解释如何解决问题。

谢谢您的帮助。

我的问题是,我正在尝试使用字符串的一部分(仅由数字组成)进行计算,但我不知道如何将单个字符转换为整数。该字符串名为“message”。

for (int place = 0; place < message.size(); place++)
        {
            if (secondPlace == 0)
            {
                cout << (message[place]) * 100 << endl;
            }
        }

谢谢。
1个回答

6
如果您想将字符'0'转换为整数0,将'1'转换为1等等,那么最简单的方法可能是以下内容:
int number = message[place] - '0';

由于数字字符按照升序编码为ascii,因此您可以从所讨论的字符的ascii值中减去'0'的ascii值,并得到等于该数字的数字。


@Jive - 不是的,C语言(并且由此推广开来,还有C++)标准保证数字是连续的。而在EBCDIC中,它们就是连续的(代码为240到250)。 - Chris Lutz
@Chris:不是通过扩展(除非你指的是历史上)。C++标准明确规定它们在2.2/3中是连续的。 - Steve Jessop
对于 StackOverflow 的评论规则我感到非常不满。我试图删除评论,但是无法做到。尝试编辑它,却再次被打回。 - Jive Dadson
没关系,声望并不是那么重要的。 ;) - Amber
是的,你需要做的唯一事情就是写cout << (message[place] - '0') * 100 << endl。 - pocoa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接