我正在学习C刚开始今天,我来自了解一点Python和一点点Javascript,我想知道如何在Javascript中获取字符串的int基础,你可以做这样:
parseInt("myString", 36);
那将返回1799765255212
在Python中就是这样:
int("myString", 36)
哪个也会返回1799765255212
是否有C等价物?如果没有,我该怎么做?
答案 0 :(得分:2)
#inclucde <stdlib.h>
long long val = strtoll("myString", NULL, 36);
答案 1 :(得分:0)
您可以使用接受可选基础的strtoll将您的号码转换为base36,因为Python int
已完成
long long myint1 = std::strtoll("myString", NULL ,36);
很少有事情需要注意,
Python整数不受C / C ++位数限制的限制。根据标准,int
的大小最多为4个字节
std::stoi, std::stol, std::stoll与atoi
不同,它接受一个可选的基础来接受任意基础的字符串。
因此,请考虑以上两点,std::strtoll
最适合您的具体情况。
示例来源
#include <iostream>
#include <string>
int main()
{
std::string str1 = "myString";
long long myint1 = std::strtoll(str1.c_str(),0,36);
std::cout << "std::strtoll(\"" << str1 << "\") is " << myint1 << '\n';
}
输出
std::strtoll("myString") is 1799765255212
注意 strtoll
已添加到标准每个C99或C ++ 11中。截至目前,并非所有编译器都符合C ++ 11
答案 2 :(得分:0)
我会使用strtoll
之类的:
#include <stdlib.h>
long long value;
value = strtoll("myString", NULL, 36);
printf("value is %lld.\n", value);
答案 3 :(得分:0)