比较两个字符串作为数值

Pra*_*kar 0 c++ string algorithm comparison

我应该如何比较C++中的两个字符串表示数字?我想转换为long long类型数但问题是字符串表示的数值可以超过long longMAX限制.保证字符串代表数值.

在Java中有一个类似的问题比较两个数字String值.但是这使用了我们在C++中没有的BigInteger库.

Jos*_*ron 8

逐位比较它们:

a = "3254353245423345432423133423421"
b = "3254353245423345432443133423421"

for(int i = 0; i < a.length(); ++i):
    if ((a[i] - '0') < (b[i] - '0'))
    { 
        std::cout << "b is larger!" 
    }
Run Code Online (Sandbox Code Playgroud)

如果你想知道是否b大于a,或者它们是否相等,我相信你可以从这里拿走它.或者,如果它们的长度不同,则较大的一个会赢!(在开头检查零,即"000443342")不要忘记考虑负数.

  • `123`和'0045` (3认同)