C - 与CHAR合作以及如何将其转换为整数(具有点的极端情况号)

C++ - working with char and how convert them to integer (extreme case number with a point)

本文关键字:整数 情况 转换 CHAR      更新时间:2023-10-16

我有一系列字符,我想将字符带入其中(它们是数字(,并且仅获得与整数相同的数字,而不是作为字符。

例如:

'1','2','3','5';
while(...){
num+= check - '0';
...
}

但最终我得到的是11,因为我将它们全部连接起来。我如何获得int number = 1235;

,如果我有dot 12.123的号码,我该怎么办?

谢谢!

首先,您需要了解数字添加和字符串串联之间的区别。

是的,在C 中,+运算符都用于两者(我们称该操作员过载(。但这并不意味着这是同一回事。在您的示例中,您正在从char数字中减去字符'0'的序数,这确实为您提供了数字代表的数值。您将这些加起来,以11。

结尾

如果要将数字串联到字符串中,则需要1/创建字符串,然后将数字加成2。当您使用字符串的+操作员时,编译器将进行串联而不是数字添加。

这样的东西:

#include <iostream>
#include <string>
int main(int argc, char * const argv[]) {
    char a[] = {'1', '2', '3', '5'};
    int num = 0;
    std::string str;
    for (char c : a) {
        num += c - '0';
        str += c;
    }
    std::cout << "num == " << num << std::endl;
    std::cout << "str == " << str << std::endl;
    return 0;
}
相关文章: