【问题标题】:How do I convert a single char in string to an int如何将字符串中的单个字符转换为 int
【发布时间】:2011-02-04 02:35:53
【问题描述】:

请记住,如果您选择回答这个问题,我是编程领域的初学者,可能需要比其他人更多地解释解决方案的工作原理。

感谢您的帮助。

我的问题是我试图用部分字符串(仅由数字组成)进行计算,但我不知道如何将单个 char 转换为 int。该字符串被命名为“消息”。

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

谢谢。

【问题讨论】:

    标签: c++ string char int


    【解决方案1】:

    如果您的意思是将字符'0' 转换为整数0,并将'1' 转换为1 等等,那么执行此操作的最简单方法可能如下:

    int number = message[place] - '0';
    

    由于数字的字符是按数字升序以ascii编码的,因此您可以从相关字符的ascii值中减去'0'的ascii值,得到一个等于数字的数字。

    【讨论】:

    • @Jive - 不,C(以及扩展的 C++)标准保证数字是连续的。在 EBCDIC 中,它们是(代码 240 到 250)。
    • @Chris:不是扩展名(除非你的意思是从历史上看)。 C++ 标准明确声明它们在 2.2/3 中是连续的。
    • 在 stackoverflow 评论警察的 Grrr。我试图删除评论。做不到。试图编辑它。又被打倒了。
    • 不用担心。 Rep 没什么大不了的。 ;)
    • 是的,你只需要写 cout
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-24
    • 1970-01-01
    • 2015-11-12
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多