比较两个字符串作为数值

新手上路,请多包涵

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

Java 中有一个类似的问题 比较两个数字字符串值。但这利用了我们在 C++ 中没有的 BigInteger 库。

原文由 Prashant Bhanarkar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 753
1 个回答

逐位比较它们:

 a = "3254353245423345432423133423421"
b = "3254353245423345432443133423421"

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

如果你想知道 b 是否大于 a ,或者它们是否相等,我相信你可以从这里获取它。或者,如果它们的长度不同,则较大的获胜! (检查开头是否为零,即 "000443342" )不要忘记考虑负数。

原文由 Jossie Calderon 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题