'Convert' 5 个字符到整数
'Convert' 5 chars to int
我有一个 5 个字符的字符串ad3s5
、sdgsd
等,只包含小写字母和数字。
因此,每个字符有 5 个字符和 36 个可能的值。这意味着有5^36
能够表示这一点的唯一数字。
如何将 5 个字符转换为范围内的唯一数字 0-5^36
?
您可以使用std::strtoul
像这样解码 base 36:
unsigned long val = std::strtoul(str, nullptr, 36);
例如:
#include <iostream>
#include <cstdlib>
int main()
{
const char* str = "zzzzz";
unsigned long val = std::strtoul(str, nullptr, 36);
std::cout << val;
}
输出60466175
为 365-1。
您可以使用标准库中的std::strtol
并指定base = 36
#include <cstdlib>
#include <iostream>
int main()
{
std::cout << std::strtol("ad3s5", NULL, 36) << 'n';
std::cout << std::strtol("sdgsd", NULL, 36) << 'n';
}
在 ideone.com 看到它在这里运行
相关文章:
- 显示基于用户输入的整数的字符
- 尝试将字符串/字符转换为整数会产生意外结果
- 如何使用C++将字符串中的字符转换为整数变量
- 将超出范围的整数分配给有符号字符类型
- 碱基对映射 - 将 argv[i] 移动到整数或字符作为输入
- 当我输入字符类型的数字时,为什么我无法获得整数?
- 输入验证以筛选出字符、字符串和一系列整数
- 字符和整数中 **(ptr+1) 的值差异
- 如何将整数向量值插入字符向量
- 字符到整数数组
- 为什么对无符号字符进行算术运算会将它们提升为有符号整数
- 不能将字符转换为整数吗?
- 如果我们在其中输入一个整数,则字符会给出整数作为输出,但是当分配给它一个整数时,这不会发生。为什么?
- 为什么我们不能将使用异或运算找到的整数转换为字符?
- 有没有办法将字符类型转换为整数?
- 在c++中读取文件时,它如何自动将字符放入字符数组,将数字放入整数变量
- (C/C++)fscanf_s从txt文件以字符形式读取数组时缺少整数参数错误
- 如何从字符数组C++中提取2个整数并将它们存储在2个变量中(初学者)
- 取消随机排列整数/字符数组
- 双倍到无符号的整数/字符