在c++中搜索任意长度的字符串
strtoull for arbitrary length strings in C++
我有一个程序,它接受一个长度为256位的字符串,我需要将其扩展到512位。该字符串表示一个十六进制的数字。
它的工作方式是,我有将字符串转换为64位,128位或256位数字的函数,其中128位函数调用64位函数两次,256位函数调用128位函数两次,64位函数使用strotull
或手动转换字符串。
大于64位的值存储在64位数组中。
这很难看,很难理解,而且容易出错,我想把它全部扔掉。考虑到strtoull
已经可以很好地处理64位值,我想知道是否有一些标准库可以接受任意长度的字符串并将其转换为数字数组。
这似乎是一个非常基本的字符串解析操作,我不愿意重新发明轮子。
注意:
由于许可问题(我在一家大公司工作,远离购买或法律决策),我只需要使用标准库(GNU, Boost, STL等),否则我将花费太长时间才能获得解决方案。
有许多库可用于处理大数字。谷歌上出现的第一个词是GMP。它是LGPL,所以不应该有任何许可问题。
mpz_t i;
mpz_init_set_str (i, "0123456789abcdef0123456789abcdef...", 16);
相关文章:
- C 字符串返回字符串的整数/双精度/长整型值
- 通过字符串来计算长度需要更长的时间,而不是移动字符串几次?
- 我已经建立了递归关系,它找到了两个字符串之间最长的连续公共字符串,我怎么能跳过其中一个字符串中的一个字符
- 查找"n"二进制字符串中最长公共子字符串的长度
- 如果结构中的字符串比使用的 p/调用签名长或短,会发生什么情况?
- 将字符串拆分为等长 c++ 的部分
- 给定一个等长字符串数组
- 提升不良词法强制转换:将字符串转换为无符号长整型时,无法将源类型值解释为目标
- 如何使用递归打印最长公共子序列中涉及的字符串?
- 打印所有最长匹配的子字符串
- 如何将argv字符串更改为大数字的长整数
- 如何在 C++ 中为任意数量的字符串串联编写可变参数函数
- 使用递归函数 (c++) 将长字符串转换为整数时输出错误
- 无法读取字符串的长 cin 输入
- 错误:字符数组的初始化器字符串太长c++
- 如何在C++中使用宏生成任意长的参数列表
- 过滤字符串过长会影响ldap的搜索性能吗?
- c++中的字符串到长数组
- 使用大小扣除,char数组的初始化器字符串太长
- 丢弃部分行并保存任意长的数字